A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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);
            }
        }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马