JavaWeb 使用DBUtils实现增删改查方式

作者:「已注销」 时间:2023-01-31 04:31:48 

JavaWeb 使用DBUtils实现增删改查

1、创建C3p0Utils类

创建cn.itcast.jdbc.utils包

代码如下:


package cn.itcast.jdbc.utils;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Utils {
private static DataSource ds;
static {
ds = new ComboPooledDataSource();
}
public static DataSource getDataSource() {
return ds;
}
}

2、创建DBUtilsDao类

在src目录下,创建一个cn.itcast.jdbc.demo的包,在该包下创建一个DBUtilsDao类

代码如下:


package cn.itcast.jdbc.demo;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import cn.itcast.chapter10.example.User;
import cn.itcast.jdbc.utils.C3p0Utils;
public class DBUtilsDao {
// 查询所有,返回List集合
public List findAll() throws SQLException {
// 创建QueryRunner对象
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
// 写SQL语句
String sql = "select * from user";
// 调用方法
List list = (List) runner.query(sql,
                    new BeanListHandler(User.class));
return list;
}
// 查询单个,返回对象
public User find(int id) throws SQLException {
// 创建QueryRunner对象
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
// 写SQL语句
String sql = "select * from user where id=?";
// 调用方法
User user = (User) runner.query(sql,
                new BeanHandler(User.class), new Object[] { id });
return user;
}
// 添加用户的操作
public Boolean insert(User user) throws SQLException {
// 创建QueryRunner对象
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
// 写SQL语句
String sql = "insert into user (name,password) values (?,?)";
// 调用方法
int num = runner.update(sql,
new Object[] { user.getName(), user.getPassword() });
if (num > 0)
return true;
return false;
}
// 修改用户的操作
public Boolean update(User user) throws SQLException {
// 创建QueryRunner对象
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
// 写SQL语句
String sql = "update  user set name=?,password=? where id=?";
// 调用方法
int num = runner.update(sql, new Object[] { user.getName(),
                    user.getPassword(),user.getId() });
if (num > 0)
return true;
return false;
}
// 删除用户的操作
public Boolean delete(int id) throws SQLException {
// 创建QueryRunner对象
QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
// 写SQL语句
String sql = "delete from user where id=?";
// 调用方法
int num = runner.update(sql, id);
if (num > 0)
return true;
return false;
}
}

3、创建测试类

在cn.itcast.jdbc.demo包中创建测试类DBUtilsDaoTest类

代码如下:


package cn.itcast.jdbc.demo;
import java.sql.SQLException;
import java.util.List;
import cn.itcast.chapter10.example.User;
public class DBUtilsDaoTest1 {
private static DBUtilsDao dao = new DBUtilsDao();
public static void testInsert() throws SQLException {
User user = new User();
user.setName("zhaoliu");
user.setPassword("666666");
boolean b = dao.insert(user);
System.out.println("testInsert:"+b);
}

public static void testupdate() throws SQLException {
User user = new User();
user.setName("zhaoqi");
user.setPassword("666777");
user.setId(1);
boolean b = dao.update(user);
System.out.println("testupdate:"+b);
}

public static void testdelete() throws SQLException {
boolean b = dao.delete(4);
System.out.println("testdelete:"+b);
}

public static void testfindById() throws SQLException {
User user = dao.find(2);
System.out.println(user.getId() + "," + user.getName() + ","
+ user.getPassword());
}

public static void testfindAll() throws SQLException {
List<User> list = dao.findAll();
for(User user : list) {
System.out.println(user.getId() + "," + user.getName() + ","
+ user.getPassword());
}
}
public static void main(String[] args) throws SQLException {
testInsert();
testupdate();
testdelete();
testfindById();
testfindAll();
}
}

以上代码由多个测试函数组成,依次为:插入、修改、删除、根据id查询、查询所有

4、执行测试类

1.数据表user原始数据如下:

JavaWeb 使用DBUtils实现增删改查方式

执行后结果如下:

JavaWeb 使用DBUtils实现增删改查方式

之中插入和删除都是针对第四个数据进行的操作,所以没有显现

Java DBUtils技术访问数据库

DBUtils

Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。

介绍

DBUtils相对以往的连接数据库得到结果集的模式,代码更加简洁,访问更加迅速,这里我对一个我自级设计的Cuisine表做一个简单的例子。

JavaWeb 使用DBUtils实现增删改查方式

对数据库的查询语句的代码

对已有的菜系表Cuisine查找对应菜系编号cuid的全部数据.

1、菜系表的实体类


// 菜系表的实体类
public class Cuisine {
private static final long serialVersionUID = 1L;
private int cuid;
private String cuname;
public Cuisine() {
super();
// TODO Auto-generated constructor stub
this.cuid = 0;
this.cuname = "";
}
public Cuisine(int cuid, String cuname) {
super();
this.cuid = cuid;
this.cuname = cuname;
}
public int getCuid() {
return cuid;
}
public void setCuid(int cuid) {
this.cuid = cuid;
}
public String getCuname() {
return cuname;
}
public void setCuname(String cuname) {
this.cuname = cuname;
}
@Override
public String toString() {
return "Cuisine [cuid=" + cuid + ", cuname=" + cuname + "]";
}
}

2、实现数据查询的方法


// 实现数据查询
public Cuisine getCuisine(Cuisine cu) {//得到对应菜系的信息
// TODO Auto-generated method stub
QueryRunner queryRunner = new QueryRunner();
if(cu.getCuid() != 0){
String sql = "select * from cuisine where cuid = ?";
try {
return queryRunner.query(DBUtilsPro.getConnection(),sql,cu.getCuid(),new BeanHandler(Cuisine.class));
} catch (SQLException e) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
return null;
}

来源:https://blog.csdn.net/qq_40788630/article/details/84723637

标签:JavaWeb,DBUtils,增删改查
0
投稿

猜你喜欢

  • SpringBoot服务开启后通过端口访问无反应的解决

    2022-12-11 03:57:17
  • 教你用JAVA写文本编辑器(四)

    2023-10-18 18:30:16
  • Java中的StringBuilder性能测试

    2021-09-11 03:38:20
  • Android编程开发之Spinner组件用法

    2022-09-02 17:55:26
  • C#索引属性用法实例分析

    2023-02-02 14:15:19
  • myeclipse安装Spring Tool Suite(STS)插件的方法步骤

    2023-02-22 00:56:02
  • Java 队列实现原理及简单实现代码

    2021-07-19 05:12:56
  • C#基于COM方式读取Excel表格的方法

    2021-09-15 12:35:36
  • java实现马踏棋盘算法(骑士周游问题)

    2022-03-17 20:29:46
  • OnSharedPreferenceChangeListener详解及出现不触发解决办法

    2021-10-25 19:06:36
  • 深入了解Java核心类库--BigDecimal和System类

    2023-12-18 01:50:28
  • java链式创建json对象的实现

    2023-11-12 12:36:51
  • SpringBoot整合阿里云短信服务的方法

    2022-03-24 18:17:11
  • Java中将base64编码字符串转换为图片的代码

    2023-07-14 12:23:51
  • idea无法切换分支报错问题及解决

    2023-12-14 22:39:26
  • 读取xml文件中的配置参数实例

    2023-10-16 16:20:41
  • Java Swing JLabel标签的使用方法

    2021-09-16 05:48:13
  • JAVA及相关字符集编码问题研究分享

    2022-05-16 20:33:08
  • Android基础教程数据存储之文件存储

    2023-08-05 18:18:10
  • Activiti常用类简介

    2021-07-02 21:58:13
  • asp之家 软件编程 m.aspxhome.com