zoukankan      html  css  js  c++  java
  • DBUtils

    1、概述

    DBUtils是JDBC的简化开发工具包。DBUtils封装了对JDBC的操作,简化了JDBC的操作,可以少些代码。

    DBUtils有三个核心功能:

    • QueryRunner中提供了对sql语句操作的API
    • ResultSetHandler接口,用于确定如何对select语句的结果集进行封装
    • DBUtils类,它是一个工具类,定义了关闭资源和处理事务的方法

    2、QueryRunner核心类

    • update(Connection conn, String sql, Object ... params),用来完成表数据的增加、删除和更新操作
    • query(Connetion conn, String sql, ResultSetHandler<T> rsh, Object ... params),用来完成表数据的查询操作

    3、QueryRunner实现添加、更新、删除操作

    添加

     1 package jdbc;
     2 
     3 import java.sql.Connection;
     4 import java.sql.SQLException;
     5 
     6 import org.apache.commons.dbutils.DbUtils;
     7 import org.apache.commons.dbutils.QueryRunner;
     8 
     9 /**
    10  * <p>Description:QueryRunner类insert演示 </p>
    11  * @author Administrator
    12  * @date 2018年11月5日下午3:24:14
    13  */
    14 public class QueryRunnerInsert {
    15 
    16     public static void main(String[] args) throws SQLException {
    17         // 获取一个用于执行sql语句的对象,使用QueryRunner
    18         QueryRunner qr = new QueryRunner();
    19         // sql语句
    20         String sql = "insert into sort(sname,sprice,sdesc) values(?,?,?)";
    21         Object[] params = {"head first 设计模式",73,"java设计模式"};
    22         // 获得连接
    23         Connection conn = JDBCUtils.getConnection();
    24         int row = qr.update(conn, sql, params);
    25         System.out.println(row);
    26         // 关闭资源
    27         DbUtils.closeQuietly(conn);
    28     }
    29 
    30 }

    更新

     1 package jdbc;
     2 
     3 import java.sql.Connection;
     4 import java.sql.SQLException;
     5 
     6 import org.apache.commons.dbutils.DbUtils;
     7 import org.apache.commons.dbutils.QueryRunner;
     8 
     9 /**
    10  * <p>Description:QueryRunner类的update操作演示 </p>
    11  * @author Administrator
    12  * @date 2018年11月5日下午3:34:29
    13  */
    14 public class QueryRunnerUpdate {
    15 
    16     public static void main(String[] args) throws SQLException {
    17         // 创建sql语句执行对象,QueryRunner
    18         QueryRunner qr = new QueryRunner();
    19         // sql语句
    20         String sql = "update sort set sprice=? where sname=?";
    21         // 设置占位符实际参数
    22         Object[] params = {89, "head first 设计模式"};
    23         // 获得连接
    24         Connection conn = JDBCUtils.getConnection();
    25         // 执行sql语句
    26         int row = qr.update(conn, sql, params);
    27         System.out.println(row);
    28         // 关闭资源
    29         DbUtils.closeQuietly(conn);
    30     }
    31 
    32 }

    删除

     1 package jdbc;
     2 
     3 import java.sql.Connection;
     4 import java.sql.SQLException;
     5 
     6 import org.apache.commons.dbutils.DbUtils;
     7 import org.apache.commons.dbutils.QueryRunner;
     8 
     9 /**
    10  * <p>Description:QueryRunner类delete操作演示 </p>
    11  * @author Administrator
    12  * @date 2018年11月5日下午3:41:10
    13  */
    14 public class QueryRunnerDelete {
    15 
    16     public static void main(String[] args) throws SQLException {
    17         // 创建sql语句执行对象
    18         QueryRunner qr = new QueryRunner();
    19         // sql语句
    20         String sql = "delete from sort where sname=?";
    21         // 设置占位符实际参数
    22         String sname = "疯狂Java讲义";
    23         // 获得连接
    24         Connection conn = JDBCUtils.getConnection();
    25         // 执行sql语句
    26         int row = qr.update(conn, sql, sname);
    27         System.out.println(row);
    28         // 关闭资源
    29         DbUtils.closeQuietly(conn);
    30     }
    31 
    32 }

    4、QueryRunner类实现查询操作

    ResultSetHandler结果集处理类

    ArrayHandler 将结果集的第一条记录封装到一个Object[]数组中,数组中每个元素就是这条记录中的每个字段的值
    ArrayListHandler 将结果集的每一条记录都封装到一个Object[]数组中,再将这些数组封装到List集合中
    BeanHandler 将结果集中的第一条记录封装到一个指定的javaBean中
    BeanListHandler 将结果集中的每一条记录封装到一个指定的javaBean中,再将这些javaBean封装到List集合中
    ColumeListHandler 将结果集中指定列字段的值,封装到一个List集合中
    ScalarHandler 用于单数据。例如select count(*) from表操作
    MapHandler 将结果集的第一条记录封装到一个Map集合中,key列名,value列数据
    MapListHandler  将结果集的每一条封装到一个指定的Map集合中,再将Map集合存储到List中

    JavaBean

    JavaBean就是一个类,在开发中用于封装数据。具有如下特点:

    1. 需要实现接口:java.io.Serializable,通常实现接口步骤省略不写。
    2. 提供私有的字段:private 类型 字段名
    3. 提供getter/setter方法
    4. 提供空参构造方法
     1 package jdbc;
     2 /**
     3  * <p>Description:Sort实体类 </p>
     4  * @author Administrator
     5  * @date 2018年11月4日下午9:40:58
     6  */
     7 public class Sort {
     8     private int sid;            // id
     9     private String sname;        // 名字
    10     private double sprice;        // 价格
    11     private String sdesc;        // 描述
    12     
    13     public Sort(int sid, String sname, double sprice, String sdesc) {
    14         super();
    15         this.sid = sid;
    16         this.sname = sname;
    17         this.sprice = sprice;
    18         this.sdesc = sdesc;
    19     }
    20 
    21     // 空参构造
    22     public Sort() {}
    23     
    24     public int getSid() {
    25         return sid;
    26     }
    27     public void setSid(int sid) {
    28         this.sid = sid;
    29     }
    30     public String getSname() {
    31         return sname;
    32     }
    33     public void setSname(String sname) {
    34         this.sname = sname;
    35     }
    36     public double getSprice() {
    37         return sprice;
    38     }
    39     public void setSprice(double sprice) {
    40         this.sprice = sprice;
    41     }
    42     public String getSdesc() {
    43         return sdesc;
    44     }
    45     public void setSdesc(String sdesc) {
    46         this.sdesc = sdesc;
    47     }
    48     
    49     @Override
    50     public String toString() {
    51         return "Sort [sid=" + sid + ", sname=" + sname + ", sprice=" + sprice + ", sdesc=" + sdesc + "]";
    52     }
    53 }

    ArrayHandler查询

     1 package jdbc;
     2 
     3 import java.sql.Connection;
     4 import java.sql.SQLException;
     5 import java.util.Arrays;
     6 
     7 import org.apache.commons.dbutils.DbUtils;
     8 import org.apache.commons.dbutils.QueryRunner;
     9 import org.apache.commons.dbutils.handlers.ArrayHandler;
    10 
    11 /**
    12  * <p>Description:ArrayHandler处理结果集演示 </p>
    13  * @author Administrator
    14  * @date 2018年11月5日下午4:14:06
    15  */
    16 public class ArrayHandlerDemo {
    17 
    18     public static void main(String[] args) throws SQLException {
    19         // 创建QueryRunner类对象
    20         QueryRunner qr = new QueryRunner();
    21         // sql语句
    22         String sql = "select * from sort";
    23         Object[] params = {};
    24         // 获得连接
    25         Connection conn = JDBCUtils.getConnection();
    26         // 执行sql语句
    27         Object[] objArray = qr.query(conn, sql, new ArrayHandler(), params);
    28         // 处理结果集
    29         System.out.println(Arrays.toString(objArray));
    30         // 关闭资源
    31         DbUtils.closeQuietly(conn);
    32     }
    33 
    34 }

    ArrayListHandler查询

     1 package jdbc;
     2 
     3 import java.sql.Connection;
     4 import java.sql.SQLException;
     5 import java.util.Arrays;
     6 import java.util.List;
     7 
     8 import org.apache.commons.dbutils.DbUtils;
     9 import org.apache.commons.dbutils.QueryRunner;
    10 import org.apache.commons.dbutils.handlers.ArrayListHandler;
    11 
    12 /**
    13  * <p>Description:ArrayListHandler类处理结果集演示 </p>
    14  * @author Administrator
    15  * @date 2018年11月5日下午4:22:06
    16  */
    17 public class ArrayListHandlerDemo {
    18 
    19     public static void main(String[] args) throws SQLException {
    20         // 创建sql语句执行对象
    21         QueryRunner qr = new QueryRunner();
    22         // sql语句
    23         String sql = "select * from sort";
    24         Object[] params = {};
    25         // 获得连接
    26         Connection conn = JDBCUtils.getConnection();
    27         // 执行sql语句
    28         List<Object[]> list = qr.query(conn, sql, new ArrayListHandler(), params);
    29         // 遍历list集合单独取到每一条记录
    30         for (Object[] objArray: list) {
    31             System.out.println(Arrays.toString(objArray));
    32         }
    33         // 关闭资源
    34         DbUtils.closeQuietly(conn);
    35     }
    36 
    37 }
  • 相关阅读:
    在Eclipse中运行JAVA代码远程操作HBase的示例
    hbase基本概念和hbase shell常用命令用法
    如何使用putty远程连接linux
    如何在Eclipse下安装SVN插件——subclipse
    solr之创建core(搜索核心,包括索引和数据)的方法
    百度地图api基本用法
    四年大学不如选择培训一年?
    树常见的算法操作
    二叉树常见遍历算法
    Java多线程实现生产者消费者延伸问题
  • 原文地址:https://www.cnblogs.com/alphajuns/p/9909626.html
Copyright © 2011-2022 走看看