DBUtils工具类实现增删改查

  • 一、数据库连接池Druid工具类
  • 二、DBUtils实现增删改
  • 三、DBUtils实现查询单条数据
  • 四、DBUtils实现查询批量数据
  • 五、DBUtils实现按键值对查询数据
  • 六、查询单个数据
  • QueryRunner提供对sql语句操作的API
  • ResultSetHandler接口,用于定义select操作后,怎样封装结果集
结果集处理类 描述
ArrayHandler 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中
BeanHandler 将结果集中第一条记录封装到一个制定的javaBean中
BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中
KeyedHandler 将结果集中每一条记录封装到Map<String,Object>,在将这个map集合做为另一个Map的value,另一个Map集合的key是指定的字段的值
MapHandler 将结果集中第一条记录封装到了Map<String,Object>集合中,key就是字段名称,value就是字段值
MapListHandler 将结果集中每一条记录封装到了Map<String,Object>集合中,key就是字段名称,value就是字段值,在将这些Map封装到List集合中
ScalarHandler 它是用于单个数据。例如select count(*) from 表操作

一、数据库连接池Druid工具类

import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.beanutils.PropertyUtils;import javax.sql.DataSource;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;public class JdbcUtils {private static DataSource ds = null;static {try {Properties props = new Properties();props.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties"));ds = DruidDataSourceFactory.createDataSource(props);} catch (Exception e) {throw new RuntimeException("读取配置文件异常", e);}}//Druid连接池public static Connection getDruidConnection() throws Exception {Connection conn = null;conn = ds.getConnection();return conn;}public static void release(Connection conn) throws SQLException {if(conn != null) conn.close();}public static void release(Connection conn, PreparedStatement ps) throws SQLException {if(ps!=null) ps.close();if(conn!=null) conn.close();}public static void release(Connection conn, PreparedStatement ps, java.sql.ResultSet rs) throws SQLException {if(rs!=null) rs.close();if(ps!=null) ps.close();if(conn!=null) conn.close();}
}

二、DBUtils实现增删改

import com.bigdata.plus.Entity.DatabaseInfo;
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.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;import java.sql.Connection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;public class DBUtilsTest {private QueryRunner qr = new QueryRunner();@Testpublic void test1() throws Exception {Connection conn = JdbcUtils.getDruidConnection();String sql = "insert into dw.stuinfo(stunum,name,age,hobby,create_time) values(?,?,?,?,?)";Object[] params = {10012, "杀生丸", 18, "打妖怪",new java.sql.Date(new Date().getTime())};int row = qr.update(conn, sql, params);System.out.println("已影响" + row + "行");JdbcUtils.release(conn,null,null);}
}

成功插入数据:

三、DBUtils实现查询单条数据

import com.bigdata.plus.Entity.DatabaseInfo;
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.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;import java.sql.Connection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;public class DBUtilsTest {private QueryRunner qr = new QueryRunner();@Testpublic void test2() throws Exception {Connection conn = JdbcUtils.getDruidConnection();String sql = "select t.TABLE_SCHEMA as databaseName,CONCAT_WS('.',t.TABLE_SCHEMA,t" +".TABLE_NAME)" +" as " +"tableName,t.TABLE_COMMENT as tableComment,t.TABLE_ROWS as tableRows,k.COLUMN_NAME as " +"tableKey\n" +"from INFORMATION_SCHEMA.TABLES as t\n" +"inner join INFORMATION_SCHEMA.KEY_COLUMN_USAGE as k\n" +"on k.TABLE_NAME=t.TABLE_NAME and CONSTRAINT_NAME = 'PRIMARY' and t.TABLE_SCHEMA=?";Object[] params = {"dw"};BeanHandler<DatabaseInfo> rsh = new BeanHandler<>(DatabaseInfo.class);DatabaseInfo databaseInfo = qr.query(conn, sql, rsh, params);System.out.println(databaseInfo);JdbcUtils.release(conn,null,null);}
}

四、DBUtils实现查询批量数据

package com.bigdata.plus;import com.bigdata.plus.Entity.DatabaseInfo;
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.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;import java.sql.Connection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;public class DBUtilsTest {private QueryRunner qr = new QueryRunner();@Testpublic void test3() throws Exception {Connection conn = JdbcUtils.getDruidConnection();String sql = "select t.TABLE_SCHEMA as databaseName,CONCAT_WS('.',t.TABLE_SCHEMA,t" +".TABLE_NAME)" +" as " +"tableName,t.TABLE_COMMENT as tableComment,t.TABLE_ROWS as tableRows,k.COLUMN_NAME as " +"tableKey\n" +"from INFORMATION_SCHEMA.TABLES as t\n" +"inner join INFORMATION_SCHEMA.KEY_COLUMN_USAGE as k\n" +"on k.TABLE_NAME=t.TABLE_NAME and CONSTRAINT_NAME = 'PRIMARY' and t.TABLE_SCHEMA=?";Object[] params = {"dw"};BeanListHandler<DatabaseInfo> rsh = new BeanListHandler<>(DatabaseInfo.class);List<DatabaseInfo> databaseInfos = qr.query(conn, sql, rsh, params);for(DatabaseInfo databaseInfo : databaseInfos ){System.out.println(databaseInfo);}JdbcUtils.release(conn,null,null);}
}

五、DBUtils实现按键值对查询数据

import com.bigdata.plus.Entity.DatabaseInfo;
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.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;import java.sql.Connection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;public class DBUtilsTest {private QueryRunner qr = new QueryRunner();@Testpublic void test4() throws Exception {Connection conn = JdbcUtils.getDruidConnection();String sql = "select t.TABLE_SCHEMA as databaseName,CONCAT_WS('.',t.TABLE_SCHEMA,t" +".TABLE_NAME)" +" as " +"tableName,t.TABLE_COMMENT as tableComment,t.TABLE_ROWS as tableRows,k.COLUMN_NAME as " +"tableKey\n" +"from INFORMATION_SCHEMA.TABLES as t\n" +"inner join INFORMATION_SCHEMA.KEY_COLUMN_USAGE as k\n" +"on k.TABLE_NAME=t.TABLE_NAME and CONSTRAINT_NAME = 'PRIMARY' and t.TABLE_SCHEMA=?";Object[] params = {"dw"};MapListHandler mapListHandler = new MapListHandler();List<Map<String, Object>> query = qr.query(conn, sql, mapListHandler, params);for(Map<String,Object> map : query){Set<Map.Entry<String, Object>> entries = map.entrySet();for(Map.Entry<String,Object> entry : entries){String key = entry.getKey();Object value = entry.getValue();System.out.println(key + " ======== " + value);}System.out.println("-----------------------------------");}JdbcUtils.release(conn,null,null);}}

六、查询单个数据

import com.bigdata.plus.Entity.DatabaseInfo;
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.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;import java.sql.Connection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;public class DBUtilsTest {private QueryRunner qr = new QueryRunner();@Testpublic void test5() throws Exception {Connection conn = JdbcUtils.getDruidConnection();String sql = "select count(1) from dw.stuinfo";ScalarHandler<Object> objectScalarHandler = new ScalarHandler<>();Object query = qr.query(conn, sql, objectScalarHandler);System.out.println(query);JdbcUtils.release(conn,null,null);}}

DBUtils工具类实现增删改查相关推荐

  1. mysql增删改查 工具类_Hibernate增删改查数据库之二工具类

    /** * Hibernate工具类(简单型) * 功能-完成会话工厂和会话的创建已经会话的关闭 * @author Owner * */ public class HibernateUtils { ...

  2. java 怎么快速找到实现类_JAVA懒开发:FreeMarker快速实现类的增删改查接口

    太懒,不多说看图,mybatis-generator工具执行后的项目结构 这个时候没得额service接口类,和service实现类,也没的controller类 执行引擎工具类BeanGenerat ...

  3. Springboot整合JDBC和DBUtils,实现简单的增删改查.

    Springboot整合JDBC和DBUtils,实现简单的增删改查. 一.pom.xml文件 <?xml version="1.0" encoding="UTF- ...

  4. 数据操作类:增删改查

    一.数据连接类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  5. Mybatis中使用Dao实现类实现增删改查【实际开发中使用代理dao】

    在Mybatis开发中,使用到的是代理Dao的方式实现增删改查,这样就不需要在写Dao的实现类 但是Mybatis也支持写Dao实现类!即DaoImpl 直接上DaoImpl,之前的代码可以参考前面几 ...

  6. (java)水果类(增删改查)

    public class FruitBean {private String name;//名字private int num;//数量private double price;//价格private ...

  7. mongodb可视化工具(mongodbmanagerfree_inst)和增删改查方法解析

    mongodb 可视化工具下载路径 https://www.mongodbmanager.com/download-mongodb-manager-free MongoDB 插入 向集合中插入文档 d ...

  8. 关于后盾网yii框架的学习小结(10)--使用AR类的增删改查

    创建新的数据库的语句 <?php class CategoryController extends Controller{public function filters(){return arr ...

  9. springboot(测试类)整合mybatisplus增删改查

    文章目录 下载地址 1.创建springboot项目(Spring Initializer快速创建) 2.配置文件,数据库等 3.配置,策略,实体类 4.增删改查 查询 查询全部 查询-根据id批量查 ...

最新文章

  1. 华为鸿蒙有机会吗,谷歌重压之下,华为鸿蒙还有机会翻盘吗?全球系统生态之争开启...
  2. 树的前序遍历、中序遍历、后序遍历详解
  3. 默认登录_常见品牌路由器默认登录密码大全
  4. ASP.NET MVC:缓存功能的设计及问题
  5. JS一维数组转化为三维数组有这个方法就够了
  6. android 带图片的文本框
  7. try-catch 异常处理的执行过程
  8. 常规sql读取CLOB
  9. 程序员修炼之道 pdf_程序员修炼之道-注重实效
  10. 发票上的计算机字体,发票代码和发票号码是什么字体
  11. 国内外各大搜索引擎登录入口
  12. 解决电脑输入法无法切换的问题
  13. html编辑个人信息页面,编辑个人信息.html
  14. keil5的暗色配色方案
  15. 工厂模式C++实现(三种工厂模式附详细注释)
  16. Python——requests模块详解
  17. 这30个高质量的数据集网站,你必须要试试!
  18. matlab张志涌版课后习题答案,matlab教程(张志涌)课后习题答案.doc
  19. 电子邮箱为何依然重要?企业办公邮箱的使用好处
  20. 洛谷P2657 [SCOI2009]windy数

热门文章

  1. 谷歌浏览器背景颜色设置为豆沙绿保护色详细教程!
  2. 【chrome】您目前无法访问XXX,因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复
  3. Linux 常用工具(上)
  4. 【C/C++】你知道位段吗?段位?不,是位段!
  5. oCPX简介——广告界的“无人驾驶”技术
  6. 仿bilibili导航条毛玻璃效果
  7. IEEE 802简介
  8. 开源分布式存储架构概览
  9. web站点的ssl安全性检测
  10. 桌面支持--针式打印机端口选择