DBUtils JavaBean

xiaoxiao2025-04-06  32

DBUtils:

若只使用JDBC开发,代码会有很多冗余,DBUtils是JDBC的简化开发工具包。需要使用连接池技术;

三个核心功能介绍:

1:QueryRunner中提供对sql语句操作的API;

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

结果集处理类

使用Bean处理器需要一个JavaBean

Column处理器可以指定第几列,也可以指定列名

 

3:DButils类,它就是一个工具类,定义了关闭资源与食物处理的方法

JavaBean组件:

创建一个JavaBean

package cn.itheima.domain;

public class User {     private int uid;     private String uname;     private String upassword;

    public User() {     }

    public int getUid() {         return uid;     }

    public void setUid(int uid) {         this.uid = uid;     }

    public String getUname() {         return uname;     }

    public void setUname(String uname) {         this.uname = uname;     }

    public String getUpassword() {         return upassword;     }

    public void setUpassword(String upassword) {         this.upassword = upassword;     }

}

 

测试类:

lib文件下导入jar文件

package cn.itheima.jdbc.test;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner; import org.junit.Test;

import cn.itheima.jdbc.utils.C3P0Utils;

/**  * 测试DBUtils工具类的增删改操作  *   * @author Never Say Never  * @date 2016年7月31日  * @version V1.0  */ public class TestDBUtils1 {

    /**      * 添加所有用户方法      */     @Test     public void testAddUser() {         try {             // 1.创建核心类QueryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写SQL语句             String sql = "insert into tbl_user values(null,?,?)";             // 3.为站位符设置值             Object[] params = { "余淮", "耿耿" };             // 4.执行添加操作             int rows = qr.update(sql, params);             if (rows > 0) {                 System.out.println("添加成功!");             } else {                 System.out.println("添加失败!");             }         } catch (SQLException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     }          /**      * 根据id修改用户方法      *       */     @Test     public void testUpdateUserById() {         try {             // 1.创建核心类QueryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写SQL语句             String sql = "update tbl_user set upassword=? where uid=?";             // 3.为站位符设置值             Object[] params = { "xxx", 21 };             // 4.执行添加操作             int rows = qr.update(sql, params);             if (rows > 0) {                 System.out.println("修改成功!");             } else {                 System.out.println("修改失败!");             }         } catch (SQLException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     }          /**      * 根据id删除用户方法      */     @Test     public void testDeleteUserById() {         try {             // 1.创建核心类QueryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写SQL语句             String sql = "delete from tbl_user where uid=?";             // 3.为站位符设置值             Object[] params = {19};             // 4.执行添加操作             int rows = qr.update(sql, params);             if (rows > 0) {                 System.out.println("删除成功!");             } else {                 System.out.println("删除失败!");             }         } catch (SQLException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     } }  

package cn.itheima.jdbc.test;

import java.sql.SQLException; import java.util.List; import java.util.Map;

import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.ColumnListHandler; import org.apache.commons.dbutils.handlers.MapListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import org.junit.Test;

import cn.itheima.domain.User; import cn.itheima.jdbc.utils.C3P0Utils;

/**  * 测试DBUtils查询操作  *   * @author Never Say Never  * @date 2016年7月31日  * @version V1.0  */ public class TestDBUtils2 {

    /*      * 查询所有用户方法      */     @Test     public void testQueryAll() {         try {             // 1.获取核心类queryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写sql语句             String sql = "select * from tbl_user";             // 3.执行查询操作             List<User> users = qr.query(sql, new BeanListHandler<User>(User.class));             // 4.对结果集集合进行遍历             for (User user : users) {                 System.out.println(user.getUname() + " : " + user.getUpassword());             }         } catch (SQLException e) {             throw new RuntimeException(e);         }     }          /*      * 根据id查询用户方法      */     @Test     public void testQueryUserById() {         try {             // 1.获取核心类queryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写sql语句             String sql = "select * from tbl_user where uid=?";             //3.为占位符设置值             Object[] params = {21};             // 4.执行查询操作             User user = qr.query(sql, new BeanHandler<User>(User.class), params);             System.out.println(user.getUname() + " : " + user.getUpassword());         } catch (SQLException e) {             throw new RuntimeException(e);         }     }      /*      * 根据所有用户的总个数      */     @Test     public void testQueryCount() {         try {             // 1.获取核心类queryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写sql语句             String sql = "select count(*) from tbl_user";             // 4.执行查询操作             Long count = (Long) qr.query(sql, new ScalarHandler());             System.out.println(count);         } catch (SQLException e) {             throw new RuntimeException(e);         }     }          /*      * 查询所有用户方法      */     @Test     public void testQueryAll1() {         try {             // 1.获取核心类queryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写sql语句             String sql = "select * from tbl_user";             // 3.执行查询操作             List<Map<String, Object>> list = qr.query(sql, new MapListHandler());             // 4.对结果集集合进行遍历             for (Map<String, Object> map : list) {                 System.out.println(map);             }         } catch (SQLException e) {             throw new RuntimeException(e);         }     }          /*      * 查询所有用户名方法      */     @Test     public void testQueryAll2() {         try {             // 1.获取核心类queryRunner             QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());             // 2.编写sql语句             String sql = "select * from tbl_user";             // 3.执行查询操作             List<Object> list = qr.query(sql, new ColumnListHandler("uname"));             // 4.对结果集集合进行遍历             for (Object object : list) {                 System.out.println(object);             }         } catch (SQLException e) {             throw new RuntimeException(e);         }     } }  

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-5027623.html

最新回复(0)