##DBUtils工具类的正确使用(一)

匿名 (未验证) 提交于 2019-12-02 23:42:01

DBUtils工具类(一)

2.1 概述

DBUtils 是java中数据库操作的使用工具 DBUtils封装了JDBC操作 简化了JDBC操作 可以少些代码

QueryRunner 中提供了sql语句操作的API

CREATE TABLE product(     pid INT PRIMARY KEY AUTO_INCREMENT,     pname VARCHAR(20),     price INT,     category_cid VARCHAR(20) ); INSERT INTO product(pname,price,category_cid)VALUES('华为',4999,'soo1'), ('小米',1234,'soo1'), ('劲霸男装',120,'soo2'), ('红蜻蜓',300,'soo2'), ('香奈儿',800,'soo3'), ('大宝',10,'soo3'), ('果冻',20,'soo4'), ('饼干',3,'soo4'); SELECT*FROM product;

update(String sql, Object ...prams) DML增删改

2.5 apache公司的commons组件 ---》jdbc6部---》3步(jdbc)
QueryRunner 中提供了sql语句操作的API 增删 改查
update query

ResultSetHandler 接口 用于select 操作后 接受查询的结果集

Dbutils 工具类 关闭资源 事物的处理方法 释放资源
2.6使用步骤
  1 创建QueryRuner 对象
  2 调用QueryRuner 对象的方法 update query
  3 处理结果

下面我们来看代码:

1.1增加数据

 @Test     public void test01DbUtils() throws SQLException {         //1  创建QueryRuner 对象         QueryRunner qr = new QueryRunner();         //2 调用QueryRuner 对象的方法  update query         Connection conn = C3P0xmlUtils.getconnection();         String sql="insert into product(pname,price,category_cid)values(?,?,?)";         int row = qr.update(conn, sql, "花生", 20, "s004");         System.out.println(row);         DbUtils.closeQuietly(conn);     }

1.2更改数据

第一种: @Test     public void test02DbUtils() throws SQLException {         //1,创建QueryRunner对象         QueryRunner qr = new QueryRunner();         //2,调用queryrunner对象的方法         Connection conn = C3P0xmlUtils.getconnection();         String sql="update product set pname=?where pid=?";         int rwo = qr.update(conn,sql,"海尔",1);         System.out.println(rwo);         DbUtils.closeQuietly(conn);     }第二种:
@Testpublic void test03DbUtils() throws SQLException {    QueryRunner qr = new QueryRunner(C3P0xmlUtils.getDataSource());    int row = qr.update("update product set pname=?where pid=?", "荣耀", 2);    System.out.println(row);}

1.3删除数据

@Test     public void test04DbUtils() throws SQLException {         QueryRunner qr = new QueryRunner(new ComboPooledDataSource()); //        int row = qr.update("delete from product where pid=?", 1);         int row = qr.update("delete from product where pid in(?,?,?)",2, 3, 4);         System.out.println(row);     }
重点:使用Dbutils工具包对数据库的表进行查询   使用结果集BeanHnadler*    使用方式:把查询的结果第一行数据取出来  存储到javabean对象中返回*      构造方法*         BeanHandler(Class<T> type) 传递javabean的class文件对象   Product.class2,1查询  BeanHandler(Class<T> type)
@Test     public void test05DbUtils() throws SQLException {         QueryRunner qr = new QueryRunner(C3P0xmlUtils.getDataSource());         Product o = qr.query("select*from product", new BeanHandler<>(Product.class));         System.out.println(o);     }

2,2查询  

使用Dbutils工具包对数据库的表进行查询   使用结果集BeanListHnadler使用方式把查询的多行结果存储到多个javabean中 -----》List集合
 
@Test     public void test06() throws SQLException {         QueryRunner qr = new QueryRunner(C3P0xmlUtils.getDataSource());         List<Product> list = qr.query("select*from product", new BeanListHandler<>(Product.class));         for(Product p:list){             System.out.println(p);         }     }
 

2,3查询

使用Dbutils工具包对数据库的表进行查询   使用结果集ScalarHnadler  用于接受slq语句是单一返回的情况*    使用方式:*       1 聚合函数   sum    avg  count  max min*       2 获得某一行的某一字段的值*       select pname from product where pid = ?
 
@Test     public void test07() throws SQLException {         QueryRunner qr = new QueryRunner(C3P0xmlUtils.getDataSource()); //        Object q = qr.query("select count(price)from product", new ScalarHandler());         Object q = qr.query("select pname from product where pid=?", new ScalarHandler(),5);         System.out.println(q);     }
 

2.4查询

使用Dbutils工具包对数据库的表进行查询   使用结果集ColumnListHandler用于查询指定的列  数据储存到List集合
 
@Test     public void test08() throws SQLException {         QueryRunner qr = new QueryRunner(C3P0xmlUtils.getDataSource());         List<Object> list = qr.query("select pid,pname from product", new ColumnListHandler());         for(Object o:list){             System.out.println(o);         }     }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!