美文网首页
BdUtil组件

BdUtil组件

作者: 陈洲 | 来源:发表于2017-02-26 23:13 被阅读0次
    //DbUtil组件*****************************************************************
    
            //核心类
            QueryRunner qr = new QueryRunner();
            QueryRunner qr = new QueryRunner(dataSource);
                /*
                    传dataSource与不传的区别:
                    如果用无参的方法构造qr,那么在qr调用其所有方法时,必须要传入Connection对象(以下都是)
                    如果有参,则调用方法不需要Connection对象
    
                */
    
            //查询语句
    
            //ResultSetHandler<T> 是用来设置返回类型的
            <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params);
                    
                    //例如转为自定义User类型:
                    User user = qr.query(conn,sql,new ResultSetHandler<User>(){
    
                        //重写handle方法,rs为查询结果,该方法返回值即query返回值
                        public User handle(ResuleSet rs){
    
                            User user = new User();
                            user.setId(rs.getInt("id"));
                            user.setName(rs.getString("name"));
                            return user;
                        }
    
                    },params);
    
            //用BeanHandler更为简单的实现方法:
            User user = qr.query(conn,sql,new BeanHandler<User>(User.class),params);
    
            //如果要返回一个JavaBean的List
            List<User> userList = qr.query(conn,sql,new BeanListHandler<User>(User.class),params);
    
            //返回结果的第一行,把第一行的每个属性转成一个对象,如{obj[0]=chenzhou,obj[1]=23,obj[2]=313980};
            Object[] obj = qr.query(conn,sql,new ArrayHandler(),params);
    
            //把返回的所有行都按如上形式转成obj[];
            List<Object[]> list = qr.query(conn,sql,new ArrayListHandler(),params);
    
            //返回结果的第一行第一列的值,一般用于count(*)查询,用Long类型
            <T>T qr.query(conn,sql,new ScalarHandler<T>(),params);
    
            //把返回的第一条记录封装成map,如{<name,chenzhou>,<id,313980>}
            Map<String,Object> map = qr.query(conn,sql,new MapHandler(),params);
    
            //更新语句
    
            //执行带一个参数的sql,返回修改行数
            int count = qr.update(conn,sql,params);
    
            //执行带多个参数的sql
            int count = qr.update(conn,sql,params1,params2);
    
            //执行批处理
            Object[][] params;
            int[] count = qr.batch(conn,sql,params);
    

    相关文章

      网友评论

          本文标题:BdUtil组件

          本文链接:https://www.haomeiwen.com/subject/lamawttx.html