BeanUtils组件和DbUtils组件的使用

一 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);   //执行更新带一个占位符的sql
Int  update(Connection conn, String sql, Object…  param); //执行更新带多个占位符的sql
Int[]  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);

猜你喜欢

转载自blog.csdn.net/smile_po/article/details/78505816