教程DBUtils(封装数组数据执行名称)「封装数组方法」

1 DBUtils工具1.1 简介DBUtils工具DBUtils是Apache的工具,是一个对jdbc的简单封装的工具。
提供了一些通用的jdbc操作方法。
1.2 使用步骤1)导入jar包commons-dbutils-1.2.jar2)使用的APIQueryRunner类: 通过此类可以执行更新操作或者查询操作。
update(.....): 用于更新操作(DDL、DML)query(.....): 用于查询操作(DQL)ResultSetHandler接口:用于封装查询之后的结果。
Object handle(ResultSet rs) : 用于封装数据常用的实现类:ArrayHandler: 把结果集的第一行的数据封装成对象数组。
ArrayListHandler:把结果集的每一行数据封装对象数组,把这个对象数组放入List中BeanHandler: 把结果集的第一行数据封装成javabeanBeanListHandler: 把结果集的每一行数据封装成javabean,把这个javabean放入LIs中ScalarHandler: 把结果集的第一行第一列取出。
通常用于聚合函数查询。
例如(count()/max())如果表的字段名称和javabean的属性名称不一致时,需要自定义ResultSetHandler的实现类3)更新方法/ 使用dbutils工具/public class Demo1 {@Testpublic void testInsert() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();//1.创建QueryRunner对象QueryRunner qr = new QueryRunner(ds);//2.执行操作//qr.update("INSERT INTO student(NAME,age,address) VALUES('张三11',20,'广州天河')");qr.update("INSERT INTO student(NAME,age,address) VALUES(?,?,?)", new Object[]{"eric11",20,"广州天河"});}@Testpublic void testInsert2() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();Connection conn = ds.getConnection();QueryRunner qr = new QueryRunner();qr.update(conn,"INSERT INTO student(NAME,age,address) VALUES('张三22',20,'广州天河')");//手动关闭连接conn.close();}}4)查询方法

教程DBUtils(封装数组数据执行名称)

/ dbutils执行查询操作/public class Demo2 {/ ArrayHandler: 把结果集的第一行的数据封装成对象数组。
/@Testpublic void test1() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();//1.创建QueryRunnerQueryRunner qr = new QueryRunner(ds);//2.执行sqlObject[] arr = (Object[])qr.query("select from student where id=?", new ArrayHandler(),new Object[]{2});for(Object obj:arr){System.out.println(obj);}}/ ArrayListHandler: 把结果集的每一行数据封装对象数组,把这个对象数组放入List中 @throws Exception/@Testpublic void test2() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();//1.创建QueryRunnerQueryRunner qr = new QueryRunner(ds);//2.执行sqlList<Object[]> list = (List<Object[]>)qr.query("select from student", new ArrayListHandler());for(Object[] arr:list){//一行//一列for(Object obj:arr){System.out.print(obj+"\t");}System.out.println();}}/ BeanHandler: 把结果集的第一行数据封装成javabean 约定前提: 表的字段名称和javabean的属性名称保持一致。



/@Testpublic void test3() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();//1.创建QueryRunnerQueryRunner qr = new QueryRunner(ds);//2.执行sqlStudent student = (Student)qr.query("select from student", new BeanHandler(Student.class));System.out.println(student);}/ BeanListHandler: 把结果集的每一行数据封装成javabean,把这个javabean放入LIst中 约定前提: 表的字段名称和javabean的属性名称保持一致。



/@Testpublic void test4() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();//1.创建QueryRunnerQueryRunner qr = new QueryRunner(ds);//2.执行sqlList<Student> list = (List<Student>)qr.query("select from student", new BeanListHandler(Student.class));for (Student student : list) {System.out.println(student);}}/ ScalarHandler: 把结果集的第一行第一列取出。
通常用于聚合函数查询。
例如(count()/max())/@Testpublic void test5() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();//1.创建QueryRunnerQueryRunner qr = new QueryRunner(ds);//2.执行sqlLong count = (Long)qr.query("select count(id) from student", new ScalarHandler(1));System.out.println("行数: "+count);}/ 如果表的字段名称和javabean的属性名称不一致时,需要自定义ResultSetHandler的实现类/@Testpublic void test6() throws Exception{ComboPooledDataSource ds = new ComboPooledDataSource();//1.创建QueryRunnerQueryRunner qr = new QueryRunner(ds);List<Student> list = (List<Student>)qr.query("select from student2", new MyStudentHandler());for (Student student : list) {System.out.println(student);}}}/ 自定义ResultSetHandler/class MyStudentHandler implements ResultSetHandler{@Overridepublic Object handle(ResultSet rs) throws SQLException {List<Student> list = new ArrayList<Student>();while(rs.next()){Student s = new Student();s.setId(rs.getInt("sid"));s.setName(rs.getString("sname"));s.setAge(rs.getInt("sage"));s.setAddress(rs.getString("saddress"));list.add(s);}return list;}}

联系我们

在线咨询:点击这里给我发消息