DBUtils (增删改查)

一、 概述

DBUtilsjava编程中的数据库操作实用工具,小巧简单实用。

DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。

Dbutils三个核心功能介绍

① QueryRunner中提供对sql语句操作的API.

②ResultSetHandler接口,用于定义select操作后,怎样封装结果集.

③DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法

二、 QueryRunner核心类

①update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、改操作

实例如下:

public class Userdao1 {
     public void add(User user) throws SQLException{
         Connection conn = JDBCUtils.getConn();
         String sql="insert into user(uname,pwd)values(?,?)";
         QueryRunner qr = new QueryRunner();
         int i = qr.update(conn, sql, user.getUname(),user.getPwd());
         conn.close();
     }
     //删除用户信息
     public void delete(int uid) throws SQLException{
         Connection conn = JDBCUtils.getConn();
         String sql="delete from user where uid=?";
         QueryRunner qr=new QueryRunner();
         int i = qr.update(conn, sql, uid);
         conn.close();
     }
     //修改用户信息
     public void update(User user) throws SQLException{
         Connection conn = JDBCUtils.getConn();
         String  sql="update user set uname=?,pwd=? where uid=?";
         QueryRunner qr = new QueryRunner();
         int i=qr.update(conn, sql, user.getUname(),user.getPwd(),user.getUid());
         conn.close();
     }
}

创建测试类

public class Demo01 {

    public static void main(String[] args) throws SQLException {

User user=new User(); user.setUname("张三"); user.setPwd("123456"); new Userdao1().add(user); new Userdao1().delete(6); User user=new User(); user.setUname("詹姆斯"); user.setPwd("777888"); user.setUid(5); new Userdao1().update(user); } }

 ②query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作

ArrayHandler               将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
ArrayListHandler           将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。List<object[]> list 两遍增强for先遍历object数组 在遍历list集合
BeanHandler                将结果集中第一条记录封装到一个指定的javaBean中。
BeanListHandler            将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
ColumnListHandler          将结果集中指定的列的字段值,封装到一个List集合中
ScalarHandler              它是用于单数据。例如select count(*) from 表操作。
MapHandler                 将结果集第一行封装到Map<String,Object>集合中,Key 列名, Value 该列数据
MapListHandler             将结果集每一行封装到List<Map<String,Object>>集合中,Key 列名, Value 该列数据,Map集合存储到List集合
public class Userdao1 {//arrayhadler查询
     public void get1() throws SQLException{
         String sql="select * from user";
         QueryRunner qr = new QueryRunner(MyDBUtils.getDataSource());
         Object[] obj=qr.query(sql,new ArrayHandler());
         for(Object o:obj){
             System.out.println(o);
         }
     }
     //ArrayListHandler查询
     public void get2() throws SQLException{
         String sql="select * from user";
         QueryRunner qr = new QueryRunner(MyDBUtils.getDataSource());
         List<Object[]> list=qr.query(sql,new ArrayListHandler());
         for(Object[] obj:list){
             for(Object o:obj){
                 System.out.print(o+"");
             }
             System.out.println();
         }
     }
     //BeanHandler查询 专用于结果集只有一条记录时 返回一个对象
     public void get3() throws SQLException{
//         Connection conn = JDBCUtils.getConn();
         String sql="select * from user";
         QueryRunner qr = new QueryRunner(MyDBUtils.getDataSource());
         User user=qr.query(sql,new BeanHandler<User>(User.class));
         System.out.println(user);
     }
     //BeanListHandler查询
     public void get4() throws SQLException{
//         Connection conn = JDBCUtils.getConn();
         String sql="select * from user";
         QueryRunner qr = new QueryRunner(MyDBUtils.getDataSource());
         List<User> list=qr.query(sql, new BeanListHandler<User>(User.class) );
         for(User u:list){
             System.out.println(u);
         }
//         conn.close();
     }
     //ColumnListHandler查询
     public void get5() throws SQLException{
//         Connection conn = JDBCUtils.getConn();
         String sql="select uname from user";
         QueryRunner qr = new QueryRunner(MyDBUtils.getDataSource());
         List<String> list=qr.query(sql, new ColumnListHandler<String>() );
         for(String u:list){
             System.out.println(u);
         }
     }
     //ScalarHandler查询
     public void get6() throws SQLException{
//         Connection conn = JDBCUtils.getConn();
         String sql="select count(*) from user";
         QueryRunner qr = new QueryRunner(MyDBUtils.getDataSource());
//         int count=qr.query(conn, sql, new ScalarHandler<Integer>() );
         Long count=qr.query(sql, new ScalarHandler<Long>());
         System.out.println(count.intValue());
     }
}

测试类

public class Demo01 {

    public static void main(String[] args) throws SQLException {
        new Userdao1().get1();
        new Userdao1().get2();
        new Userdao1().get3();
        new Userdao1().get4();
        new Userdao1().get5();
        new Userdao1().get6();
    }

}

数据库:

运行结果如下:

猜你喜欢

转载自www.cnblogs.com/lxc127136/p/12915133.html
今日推荐