BeanUtils组件和DbUtils组件的使用

来源:互联网 发布:C语言韩信点兵 编辑:程序博客网 时间:2024/05/22 06:31

一 BeanUtils组件

作用:简化javabean的操作。

使用方法:

  1. 导入jar包(commons-beanutils-1.8.0.jar)
  2. 导入日志支持jar包(commons-logging-1.1.1.jar)

1.1 对象赋值

//实现对象和对象属性的拷贝Admin admin = new Admin();//对象属性的拷贝BeanUtils.copyProperty(admin,"name","jack");//第一个参数对象,第二个参数属性名,第三个参数属性值//对象的拷贝Admin newAdmin = new Admin();BeanUtils.copyProperties(newAdmin,admin);//map数据拷贝到对象中  注意:map中的key要与javabean的属性名称一致Map<String,Object>map = new HashMap<String,Object>();map.put("name","jerry");map.put("age",29);BeanUtils.populate(admin,map);

1.2 类型转换器

String birth = "1996-10-01"Admin admin = new Admin();//注册日期类型转换器ConvertUtils.register(new DateLocaleConverter(),Date.class);BeanUtils.copyProperty(admin,"birth",birth);

二 DbUtils组件

作用:简化jdbc操作

使用方法: 引入commons-dbutils-1.6.jar包。

DbUtils的核心工具类:QueryRunner

2.1相关API

更新操作的API:

//需要传入Connection连接对象Int  update(Connection conn, String sql, Object param);   //执行更新带一个占位符的sqlInt  update(Connection conn, String sql, Object…  param); //执行更新带多个占位符的sqlInt[]  batch(Connection conn, String sql, Object[][] params);//批处理//不需要传入Connection连接对象,如果调用DbUtils组件的操作数据库方法,没有传入连接对象,那么在实例化QueryRunner对象的时候需要传入数据源对象: QueryRunner qr = new QueryRunner(ds);Int  update( String sql, Object param);  Int  update( String sql, Object…  param); Int[]  batch( String sql, Object[][] params)     

示例代码:

        String sql = "delete from admin where id=?";        // 连接对象        conn = JdbcUtil.getConnection();        // 创建DbUtils核心工具类对象        QueryRunner qr = new QueryRunner();        qr.update(conn, sql, 26);        // 关闭        DbUtils.close(conn);

查询操作的API:

query(Connection conn ,String sql, ResultSetHandler<T> rsh, Object... params) 

封装结果的对象:

BeanHandler: 查询返回单个对象

        String sql = "select * from admin where id=?";        // 获取连接        conn = JdbcUtil.getConnection();        // 创建DbUtils核心工具类对象        QueryRunner qr = new QueryRunner();        // 查询返回单个对象        Admin admin =  qr.query(conn, sql, new BeanHandler<Admin>(Admin.class), 29);        System.out.println(admin);        conn.close();

BeanListHandler: 查询返回list集合,集合元素是指定的对象

       String sql = "select * from admin";        conn = JdbcUtil.getConnection();        QueryRunner qr = new QueryRunner();        // 查询全部数据        List<Admin> list = qr.query(conn, sql, new BeanListHandler<Admin>(Admin.class));        System.out.println(list);        conn.close();

ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)
MapHandler 查询返回结果的第一条记录封装为map

        String sql = "select * from admin";        conn = JdbcUtil.getConnection();        QueryRunner qr = new QueryRunner();        // 查询        //Object[] obj = qr.query(conn, sql, new ArrayHandler());        //List<Object[]> list = qr.query(conn, sql, new ArrayListHandler());        //Long num = qr.query(conn, sql, new ScalarHandler<Long>());        Map<String, Object> map = qr.query(conn,sql, new MapHandler());        conn.close();

使用示例:

String sql = "select * from admin where id =?"//获取连接Connection conn = JdbcUtil.getConnection();//创建DbUtils核心工具类QueryRunner qr = new QueryRunner();//查询返回单个对象Admin admin = qr.query(conn,sql,new BeanHandler<Admin>(Admin.class),1);
原创粉丝点击