DBUtils工具
概述
1. DBUtils封装了对JDBC的操作,简化了开发,使用前需导入commons-dbutils-1.6.jar等版本的jar包。
2. QureyRunner是其操作sql语句的核心API,分别有:
* update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作
* query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作
* ResultSetHandler接口,用于定义select操作后,怎样封装结果集,包括单个及多个.
* DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法
使用
1. update、delete、insert方法:
public class Test1 {
QueryRunner qr;
@Before
public void init() {
qr = new QueryRunner(JDBCUtils.getDataSource());
}
@Test
public void testUpdate() {
String sql = "update student set age = ? where id = ? ";
int rows = 0;
try {
rows = qr.update(sql, 11, 1);
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(rows);
}
@Test
public void testDelete() {
String sql = "delete from student where id = ?";
int rows = 0;
try {
rows = qr.update(sql, 12);
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(rows);
}
@Test
public void testSave() {
String sql = "insert into student values (?, ?, ?, ?, ?, ?, ?)";
int rows = 0;
Object[] param = {12, "测试111", 13, "男", "哈哈", 200, 30};
try {
rows = qr.update(sql, param);
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(rows);
}
}
2. query方法
* ResultSetHandler结果集处理类
ArrayHandler 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
BeanHandler 将结果集中第一条记录封装到一个指定的javaBean中。
BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中
ScalarHandler 它是用于单数据。例如select count(*) from 表操作。
MapHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
MapListHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合
* 比如BeanHandler和BeanListHandler
public class Test1 {
QueryRunner qr;
@Before
public void init() {
qr = new QueryRunner(JDBCUtils.getDataSource());
}
@Test
public void testQueryOne() {
String sql = "select * from student where id = ?";
Student student = null;
try {
student = qr.query(sql, new BeanHandler<Student>(Student.class), 1);
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(student);
}
@Test
public void testQueryMany() {
String sql = "select * from student";
List<Student> students = null;
try {
students = qr.query(sql, new BeanListHandler<Student>(Student.class));
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(students);
}
}
|
|