java JDBC DBUtils 核心功能

DBUtils API:DBUutilsAPI

介绍三个核心功能
1.QueryRunner 提供对SQL 语句操作API
2.ResultSetHandler 接口 ,用于定义select 操作后 封装结果集
3.DbUtils 类,定义了关闭资源和处理方法

QueryRunner 核心类

三步骤:

//1.连接池获取核心类QueryRunner
QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
//2.编写SQL语句
String sql="";
//3.执行操作
qr.update();//插入 删除 修改操作
qr.query()//查询操作

插入操作举例:

try{
        QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
        String sql="insert into db.users values(null,?,?)";
        Object[] params={uname,upassword};
        int rows=qr.update(sql,params);
        if(rows>0)
        {
            System.out.printf("添加成功");
        }
        else System.out.printf("添加失败");
        } catch (SQLException e) {
            e.printStackTrace();
        }

删除操作举例:

try {
        QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
        String sql="insert into db.users values(null,?,?)";
        Object[] params={uname,upassword};
        int rows=qr.update(sql,params);
        if(rows>0)
        {
            System.out.printf("添加成功");
        }
        else System.out.printf("添加失败");
        } catch (SQLException e) {
            e.printStackTrace();
        }

修改举列:

try {
            QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
            String sql="update db.users set uname=?,upassword=? where  uname=? and upassword=?";
            Object[] params={newname,newpassword,oldname,oldpassword};
            int rows=qr.update(sql,params);
            if(rows>0)
            {
                System.out.printf("修改成功");
            }
            else System.out.printf("修改失败");
        } catch (SQLException e) {
            e.printStackTrace();
        }




ResultSetHandler 接口 : 定义select操作后的 结果集

结果处理类:

ArrayHandler

将结果中的每一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

ArrayListHandler

将结果中的每一条记录封装到一个Object[]数组中,再将这些数组封装到List集合中

BeanHandler

将结果中第一条记录封装到指定的javaBean

BeanListHandler

将结果中每一条记录封装到指定的javaBean中,再将这些javaBean封装到List集合中

ColumnListHandler

将结果中中指定的列字段值,封装到一个List集合中

KeyedHandler

将结果中每一条记录封装到Map<String,Object>集合中,再将这个map集合作为另一个Mapvalue,另一个Map的集合的key是指定的字段的值

MapHandler

将结果中每一条记录封装到Map<String,Object>集合中,key就是字段名称,value就是字段值

MapListHandler

将结果中每一条记录封装到Map<String,Object>集合中,key就是字段名称,value就是字段值,再将这些Map封装到List集合中

ScalarHandler

它是用于单数据。例如 select * count(*) from 操作



举例:

查询一组数据  使用BeanHandler

 QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
            String sql="select * from db.users where uname=? and upassword=?";
            Object[] params={uname,upassword};
            User user=qr.query(sql,new BeanHandler<User>(User.class),params);
            if(user!=null) System.out.printf("登录成功");
            else System.out.printf("登录失败");

查询一组数据 使用MapHandler

 QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
            String sql="select * from db.users where uname=? and upassword=?";
            Object[] params={uname,upassword};
            Map<String,Object> user=qr.query(sql,new MapHandler(),params);
            if(user!=null) System.out.printf("登录成功 "+user.get("uname")+":"+user.get("upassword"));
            else System.out.printf("登录失败");

查询所有数据 使用BeanListHandler

 QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
            String sql="select * from db.users";
            List<User> users=qr.query(sql,new BeanListHandler<User>(User.class));
            for(User user:users)
            {
                System.out.println(user.getUname()+" "+user.getUpassword());
            }

查询所有数据 使用MapListHandler

 QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
            String sql="select * from db.users";
            List<Map<String,Object>> users=qr.query(sql,new MapListHandler());
            for(Map<String,Object> user:users)
            {
                System.out.println(user.get("uname")+":"+user.get("upassword"));
            }
查询所有用户的一组数据 使用ColumnListHandler

QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
            String sql="select * from db.users";
            List<Object> usersname=qr.query(sql,new ColumnListHandler("uname"));//仅能查询一列
            for(Object username:usersname)
            {
                System.out.println(username);
            }

查询用户数量 使用ScalarHandler

 QueryRunner qr=new QueryRunner(DBCPUtils.getDataSource());
            String sql="select count(*) from db.users";
            Long count=(long)qr.query(sql,new ScalarHandler());
            System.out.printf("用户数量:"+count);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值