DBUtils工具类实现增删改查
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工具类实现增删改查相关推荐
- mysql增删改查 工具类_Hibernate增删改查数据库之二工具类
/** * Hibernate工具类(简单型) * 功能-完成会话工厂和会话的创建已经会话的关闭 * @author Owner * */ public class HibernateUtils { ...
- java 怎么快速找到实现类_JAVA懒开发:FreeMarker快速实现类的增删改查接口
太懒,不多说看图,mybatis-generator工具执行后的项目结构 这个时候没得额service接口类,和service实现类,也没的controller类 执行引擎工具类BeanGenerat ...
- Springboot整合JDBC和DBUtils,实现简单的增删改查.
Springboot整合JDBC和DBUtils,实现简单的增删改查. 一.pom.xml文件 <?xml version="1.0" encoding="UTF- ...
- 数据操作类:增删改查
一.数据连接类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- Mybatis中使用Dao实现类实现增删改查【实际开发中使用代理dao】
在Mybatis开发中,使用到的是代理Dao的方式实现增删改查,这样就不需要在写Dao的实现类 但是Mybatis也支持写Dao实现类!即DaoImpl 直接上DaoImpl,之前的代码可以参考前面几 ...
- (java)水果类(增删改查)
public class FruitBean {private String name;//名字private int num;//数量private double price;//价格private ...
- mongodb可视化工具(mongodbmanagerfree_inst)和增删改查方法解析
mongodb 可视化工具下载路径 https://www.mongodbmanager.com/download-mongodb-manager-free MongoDB 插入 向集合中插入文档 d ...
- 关于后盾网yii框架的学习小结(10)--使用AR类的增删改查
创建新的数据库的语句 <?php class CategoryController extends Controller{public function filters(){return arr ...
- springboot(测试类)整合mybatisplus增删改查
文章目录 下载地址 1.创建springboot项目(Spring Initializer快速创建) 2.配置文件,数据库等 3.配置,策略,实体类 4.增删改查 查询 查询全部 查询-根据id批量查 ...
最新文章
- 华为鸿蒙有机会吗,谷歌重压之下,华为鸿蒙还有机会翻盘吗?全球系统生态之争开启...
- 树的前序遍历、中序遍历、后序遍历详解
- 默认登录_常见品牌路由器默认登录密码大全
- ASP.NET MVC:缓存功能的设计及问题
- JS一维数组转化为三维数组有这个方法就够了
- android 带图片的文本框
- try-catch 异常处理的执行过程
- 常规sql读取CLOB
- 程序员修炼之道 pdf_程序员修炼之道-注重实效
- 发票上的计算机字体,发票代码和发票号码是什么字体
- 国内外各大搜索引擎登录入口
- 解决电脑输入法无法切换的问题
- html编辑个人信息页面,编辑个人信息.html
- keil5的暗色配色方案
- 工厂模式C++实现(三种工厂模式附详细注释)
- Python——requests模块详解
- 这30个高质量的数据集网站,你必须要试试!
- matlab张志涌版课后习题答案,matlab教程(张志涌)课后习题答案.doc
- 电子邮箱为何依然重要?企业办公邮箱的使用好处
- 洛谷P2657 [SCOI2009]windy数