DbUtils的使用

Posted *青锋*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DbUtils的使用相关的知识,希望对你有一定的参考价值。

Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能

导入jar包

  1. c3p0-0.9.1.2-jdk1.3.jar
  2. c3p0-0.9.1.2.jar
  3. c3p0-oracle-thin-extras-0.9.1.2.jar
  4. commons-dbutils-1.4.jar
  5. mysql-connector-java-5.1.7-bin.jar

增删改

public class TestDbUtils {

	@Test
	public void test() throws SQLException {
		ComboPooledDataSource ds = new ComboPooledDataSource();
		QueryRunner runner = new QueryRunner(ds);
		
		//增加
		/*String sql = "insert into person values(null,?,?,?,null)";
		runner.update(sql,"qf",21,new Date(0));*/
		
		//删除
		/*String sql = "delete from person where id>?";
		runner.update(sql,18);*/
				
		//修改
		String sql = "update person set name=? where id=?";
		runner.update(sql,"smile",18);
	}
}

查询 

查询一个

 1 public class TestDbUtils {
 2 
 3     @Test
 4     /*
 5      * 匿名内部类实现
 6      */
 7     public void test() throws SQLException {
 8         ComboPooledDataSource ds = new ComboPooledDataSource();
 9         QueryRunner runner = new QueryRunner(ds);
10         
11         Person person = runner.query("select * from person where id=?", new ResultSetHandler<Person>() {
12 
13             @Override
14             public Person handle(ResultSet rs) throws SQLException {
15                 Person p = null;
16                 while(rs.next()) {
17                     String name = rs.getString("name");
18                     int age = rs.getInt("age");
19                     Date time = rs.getDate("time");
20                     String address = rs.getString("address");
21                     p = new Person(name, age, time, address);
22                 }
23                 return p;
24             }
25         }, 2);
26         System.out.println(person);
27     }
28     
29     @Test
30     /*
31      * 使用ResultSetHandler接口的实现类
32      */
33     public void test2() throws SQLException {
34         ComboPooledDataSource ds = new ComboPooledDataSource();
35         QueryRunner runner = new QueryRunner(ds);
36         
37         Person person = runner.query("select * from person where id=?", new BeanHandler<Person>(Person.class), 2);
38         System.out.println(person);
39     }
40 }

查询多个

 1 public class TestDbUtils {
 2 
 3     /*
 4      * 使用ResultSetHandler接口的实现类
 5      */
 6     @Test
 7     public void test2() throws SQLException {
 8         ComboPooledDataSource ds = new ComboPooledDataSource();
 9         QueryRunner runner = new QueryRunner(ds);
10         
11         List<Person> list = runner.query("select * from person ", new BeanListHandler<Person>(Person.class));
12         for (Person person : list) {
13             System.out.println(person);
14         }
15     }
16 }

输出

Person [name=smile, age=12, time=2018-03-06 19:32:35.0, address=null]
Person [name=wxf, age=13, time=2018-03-07 19:33:37.0, address=null]
Person [name=smile, age=24, time=1970-01-01 00:00:00.0, address=null]

以上是关于DbUtils的使用的主要内容,如果未能解决你的问题,请参考以下文章

开源JDBC工具类DbUtils

数据库——DBUtils和连接池

Dbutils工具类的使用

泛型的使用:模拟写出commons-dbutils

java学习日记(day30--dbutils)

Java基础学习笔记二十七 DBUtils和连接池