Java数据库DBUtils框架使用介绍,javadbutils
一、JavaBean就是一个类,在开发中常用语封装数据。具有如下特性1. 需要实现接口:java.io.Serializable,通常偷懒省略了。
2. 提供私有字段:private类型字段名;
3. 提供getter/setter方法:(在JavaBean类中必须实现get、set方法,否则拿不到数据)
4. 提供无参构造
二、DBUtils三个核心功能介绍:
1) QueryRunner中提供对sql语句操作的API.
2) ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
3) DBUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法。
三、 QueryRunner核心类 QueryRunner(DataSource ds):提供数据源(连接池),DBUtils底层自动维护连接connection update(Stringsql, Object... params):执行更新数据 query(String sql, ResultSetHandler
四、 ResultSetHandler结果集处理类
ArrayHandler | 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是 这条记录中的每一个字段的值 |
ArrayListHandler | 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到 List集合中。 |
BeanHandler | 将结果集中第一条记录封装到一个指定的javaBean中。 |
BeanListHandler | 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List 集合中 |
ColumnListHandler | 将结果集中指定的列的字段值,封装到一个List集合中 |
KeyedHandler | 将结果集中每一条记录封装到Map |
MapHandler | 将结果集中第一条记录封装到了 Map |
MapListHandler | 将结果集中每一条记录封装到了 Map |
ScalarHandler | 它是用于单数据。例如select count(*) from表操作。 |
五、代码实现: 1、添加数据
//添加数据 @Test public void addUser() throws SQLException{ //1、创建核心类QueryRunner QueryRunner qr = new QueryRunner(DBCPUtils.getDataSource()); //2、填写SQL语句 String sql = "insert into student values(null,?,?,?,?)"; //3、为占位符赋值: Object[] params = {"赵晓东","22","男","123456"}; //4、执行添加操作 int rows = qr.update(sql, params); if(rows >0){ System.out.println("Add Success!"); }else{ System.out.println("Add Failed"); } }
2、修改数据:
//修改数据 @Test public void Update() throws SQLException{ //1、第一种方式 // QueryRunner qr = new QueryRunner(DBCPUtils.getDataSource()); // String sql = "update student set passwd = ? where name = ?"; // Object[] params = {"123456","michong"};//将占位符的值放在数组中 // int rows = qr.update( sql, params); //2、第二种方式 QueryRunner qr = new QueryRunner(); String sql = "update student set passwd = ? where name = ?"; int rows = qr.update(DBCPUtils.getConnection(),sql,"12345678","michong"); if(rows > 0 ){ System.out.println("Update Success"); }else{ System.out.println("Update Failed"); } }
3、查询数据并放在List集合中
//全部查询,并且放在List集合中 @Test public void selectListALL() throws SQLException{ QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from student"; //获得结果集 List4、查询数据并放在Map中students = qr.query(sql, new BeanListHandler (Student.class)); System.out.println(students); } //单个查询 @Test public void selectOne() throws SQLException{ QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from student where id = ?"; //获得单个结果 Student student = qr.query(sql, new BeanHandler (Student.class),1); System.out.println(student); }
//单个查询,使用Map @Test public void selectMap() throws SQLException{ QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from student where id = ?"; Mapquery = qr.query(sql, new MapHandler(),1); Set > entrySet = query.entrySet(); for (Entry entry : entrySet) { System.out.print(entry.getKey()+":"); System.out.println(entry.getValue()); System.out.println("--------------------"); } } //多个查询,List
5、用于单数据。例如select count(*) from表操作。
@Test public void selectSingleData() throws SQLException{ QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select count(*) from student"; //获得查询的数目 long size = (long)qr.query(sql, new ScalarHandler()); System.out.println(size); }
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。