1、在pom文件引入依赖

<dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>1.6</version>
</dependency>

2、新建JDBCUtils

import java.sql.*;/*** JDBC工具类* 包含数据库连接及关闭数据库资源*/
public class JDBCUtils3 {private static String driver = "com.mysql.cj.jdbc.Driver";private static String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=UTF-8&useSSL=false&rewriteBatchedStatements=true&allowMultiQueries=true";private static String username = "root";private static String password = "root";static {try {// 加载数据库驱动Class.forName(driver);} catch (Exception e) {throw new ExceptionInInitializerError(e);}}static Connection connection = null;/*** @Method: getConnection* @Description: 获取数据库连接对象* @Anthor:孤傲苍狼** @return Connection数据库连接对象* @throws SQLException*/public static Connection getConnection(){try {if(connection == null){connection = DriverManager.getConnection(url, username, password);}return connection;}catch (SQLException e) {e.printStackTrace();}return connection;}/*** @Method: release* @Description: 释放资源, 要释放的资源包括Connection数据库连接对象,负责执行SQL命令的Statement对象,*               存储查询结果的ResultSet对象** @param conn* @param st* @param rs*/public static void release(Connection conn, Statement st, ResultSet rs) {if (rs != null) {try {// 关闭存储查询结果的ResultSet对象rs.close();} catch (Exception e) {e.printStackTrace();}rs = null;}if (st != null) {try {// 关闭负责执行SQL命令的Statement对象st.close();} catch (Exception e) {e.printStackTrace();}}if (conn != null) {try {// 关闭Connection数据库连接对象conn.close();} catch (Exception e) {e.printStackTrace();}}}}

3、新建DBHelper类

实现了创建表、删除表、增加数据、查询一条数据、分页查询数据

package com.itl.iap.energy.provider.dbhelp;import com.itl.iap.common.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
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.ScalarHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@Slf4j
@Component
public class DBHelper {@Autowiredprivate JDBCUtils jdbcUtils;private static QueryRunner qr = new QueryRunner();/*** 创建表* @param tableName*/public void createTable(String tableName) {try {PreparedStatement ps=jdbcUtils.getConnection().prepareStatement(String.format(createSQL,tableName,tableName));ps.executeUpdate();//执行sql语句log.info("数据表:{}创建成功",tableName);}catch (Exception e){log.error("数据表:{}创建失败:{}",tableName,e);}}/*** 创建表* @param tableName*/public void deleteTable(String tableName) {try {PreparedStatement ps=jdbcUtils.getConnection().prepareStatement("DROP TABLE "+tableName);ps.executeUpdate();//执行sql语句log.info("数据表:{}删除成功",tableName);}catch (Exception e){log.error("数据表:{}删除失败:{}",tableName,e);}}/*** 查询一条数据* @param tableName* @param p*/public void addOne(String tableName,Parameter p){try {String sql = String.format(insertSQL, tableName);int insertCount = qr.update(jdbcUtils.getConnection(), sql,p.getParameterNo(),p.getParameterName(),p.getParameterUnit(),p.getParameterValue(),p.getCollectionTime(),p.getOperator(),p.getOperation(),p.getStation(),p.getShopOrder(), p.getCreated_by(),p.getCreationTime());log.info("表:{},增加了一条记录",tableName,insertCount);}catch (Exception e){log.error("表:{},增加记录失败:{}",tableName,e);}}/*** 根据id查询一条数据* */public Parameter getById(String tableName,int id) {try {String sql = "SELECT * FROM "+ tableName +" WHERE ID="+id;// 返回一个Parameter parameter = qr.query(jdbcUtils.getConnection(), sql,new BeanHandler<Parameter>(Parameter.class));log.info("getById:{}",parameter.toString());return parameter;}catch (Exception e){log.error("查询失败:id:{},{}",id,e);}return null;}/*** 分页查询用* */public Map<String,Object> page(String tableName, int pageIndex, int pageSize, Parameter parameter) {Map<String,Object> resMap = new HashMap<>();try {if(pageIndex == 0){pageIndex =1;}int start = (pageIndex * pageSize);String sql = String.format(listSql,tableName,start,pageSize);String sqlCountTotal = String.format(listSqlTotal,tableName);String sql2 = "";if(StringUtils.isNotBlank(parameter.getParameterNo())){sql2=" and parameter_no ="+parameter.getParameterNo();}if(StringUtils.isNotBlank(parameter.getParameterName())){sql2=" and parameter_name like '%"+parameter.getParameterName()+"%'";}if(StringUtils.isNotBlank(parameter.getStartTime())){sql2=" and collection_time >= "+parameter.getStartTime();}if(StringUtils.isNotBlank(parameter.getEndTime())){sql2=" and collection_time <= "+parameter.getEndTime();}sql = sql.replace("replace",sql2);sqlCountTotal = sqlCountTotal.replace("replace",sql2);// 返回对象数组Connection connection = jdbcUtils.getConnection();List<Parameter> list = qr.query(connection, sql, new BeanListHandler<Parameter>(Parameter.class));long countTotal = qr.query(connection,sqlCountTotal,new ScalarHandler<Long>());resMap.put("list",list);long pageTotal =  countTotal /pageSize;if(countTotal % pageSize !=0){pageTotal+=1;}resMap.put("total",countTotal);resMap.put("pageTotal",pageTotal);resMap.put("pageSize",pageSize);resMap.put("currentIndex",pageIndex);return resMap;}catch (Exception e){log.error("查询失败:{}",e);}return null;}private static String createSQL="CREATE TABLE %s("+"id bigint(32) NOT NULL AUTO_INCREMENT COMMENT 'id',"+"parameter_no varchar(30) DEFAULT NULL COMMENT '参数编号',"+"parameter_name varchar(30) DEFAULT NULL COMMENT '参数名称',"+"parameter_unit varchar(10) DEFAULT NULL COMMENT '单位',"+"parameter_value varchar(30) DEFAULT NULL COMMENT '参数值',"+"collection_time datetime DEFAULT NULL COMMENT '采集时间',"+"operator varchar(30) DEFAULT NULL COMMENT '作业者',"+"operation varchar(30) DEFAULT NULL COMMENT '工序',"+"station varchar(30) DEFAULT NULL COMMENT '工位',"+"shop_order varchar(30) DEFAULT NULL COMMENT '工单',"+"created_by varchar(10) DEFAULT NULL COMMENT '创建者',"+"creation_time datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',"+"PRIMARY KEY (id)"+") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='采集数据%s';";private static String insertSQL="INSERT INTO `%s` (`parameter_no`, `parameter_name`, `parameter_unit`, `parameter_value`, `collection_time`, `operator`, `operation`, `station`, `shop_order`, `created_by`, `creation_time`)" +" VALUES (?,?,?, ?,?,?,?,?,?,?,?);";private static String listSql = "SELECT * FROM %s WHERE 1=1 replace LIMIT %d,%d";private static String listSqlTotal = "SELECT COUNT(*) FROM %s WHERE 1=1 replace ";public static void main(String[] args) throws SQLException {//createTable("test1");//deleteTable("test1");/*for (int i = 0;i<23;i++){Parameter p = new Parameter();p.setCollectionTime(LocalDateTime.now());p.setCreated_by("test");p.setCreationTime(LocalDateTime.now());p.setOperator("hlw");p.setOperation("operation");p.setParameterName("原料批次");p.setParameterNo("SC202211160007");p.setParameterUnit("次");p.setParameterValue("44555");p.setStation("9");p.setShopOrder("JH20221010003");addOne("test1",p);}*///getById("test1",2);/* Parameter q = new Parameter();q.setParameterName("原料批");q.setStartTime("'2022-11-29 13:33:37'");q.setEndTime("'2022-11-29 14:33:37'");Map<String, Object> test1 = page("test1", 0, 2, q);System.out.println(test1);*/}
}

springboot之commons-dbutils的使用相关推荐

  1. 高性能jdbc封装工具 Apache Commons DbUtils 1.6(转载)

    转载自原文地址:http://gao-xianglong.iteye.com/blog/2166444 前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更多的 ...

  2. commons dbutils 的介绍与使用

    1.Commons dbutils是什么? commons-dbutils 是 Apache 组织提供的一个开源 JDBC 工具类库,对传统操作数据库的类进行二次封装,可以把结果集转化成List. 2 ...

  3. mysql连接池_数据库技术:数据库连接池,Commons DbUtils,批处理,元数据

    Database Connection Pool Introduction to Database Connection Pool 实际开发中"获得连接"或"释放资源&q ...

  4. Apache Commons DbUtils 入门

    一.概述 DbUtils小巧的Java数据库操作工具,它在JDBC的基础上做了科学的封装,旨在简化JDBC代码混乱与重复. 对于JDBC代码,存在很多问题,算是对Java的批判: 1.操作过程复杂,代 ...

  5. org.apache.commons.dbutils.QueryRunner 执行sqlserver的存储过程

    执行不带输出参数的存储过程与 执行普通update  sql没有什么区别,直接调用即可: 示例代码: public Boolean startResidentialInfoStatistics(Str ...

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

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

  7. apachecommon连接mysql_使用Apache Commons的DBUtils工具包中的,QueryRunner查询数据库返回结果错误...

    写了一个最简单的测试,就是使用QueryRunner查询一个表中的所有记录,并保存在JavaBean类对象里. 问题如下:查询到的id全为0,使用普通sql查询是正确的:而且使用QueryRunner ...

  8. java Apache Commons jar包简介

    一.Commons BeanUtils 说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 二.Commons CLI 说明 ...

  9. 编写更少量的代码:使用apache commons工具类库

    Commons-configuration Commons-FileUploadCommons DbUtilsCommons BeanUtils Commons CLI Commons CodecCo ...

  10. DbUtils工具类使用

    2019独角兽企业重金招聘Python工程师标准>>> DbUtils工具类使用 创建数据库 CREATE TABLE `student` (`userId` int(11) NOT ...

最新文章

  1. 利用自己的电脑设置web服务器建网站_win7系统篇,win7系统利用iis搭建web服务器实现信息浏览资源共享的操作方法...
  2. c语言程序设计例题椭圆,2016年西安邮电大学理学院高级语言程序设计之C语言程序设计复试笔试仿真模拟题...
  3. 数据结构与算法--最小的k个数
  4. ppt图表图表类型起始_梅科图表
  5. 有些垃圾网站转载都不会
  6. php验证密码后跳转_php-laravel框架用户验证(Auth)模块解析(四)忘记密码
  7. android基础入门思考题答案,《Android移动应用基础教程》中国铁道出版社课后习题(附答案)...
  8. pdnovel.php_Pdnovel 在線閱讀體驗
  9. dede后台文章无法编辑(出现空白)的解决办法
  10. map和object对象互转
  11. 学习一下企业管理信息化建设的“诺兰模型”
  12. excel筛选和排序
  13. html 字体图标库,阿里字体图标库介绍及图标字体的使用方法
  14. html+css基础教程之html简介和元素
  15. 免费和开源引擎的游戏引擎,转载自维基
  16. Normal Equations 的由来
  17. 使用Python对股票数据进行数据分析(二)-使用ta-lib库获取日线行情、5日均线、10日均线行情并显示
  18. Java并发编程与技术内幕:ThreadFactory、ThreadLocal
  19. lisp 梯形展开图_利用AutoCAD平台的Autolisp程序语言做复杂建模
  20. Matlab 未找到支持的编译器或 SDK 解决方法归纳

热门文章

  1. java开发最新获取抖音无水印视频和背景音乐
  2. Day724. 如何改进代码废弃 -Java8后最重要新特性
  3. 把微信头像保存到本地的两种方式
  4. PMBOK(第六版) PMP笔记——《十》第十章(项目沟通管理)
  5. 什么是竞争情报(CI)?
  6. Linux上安装Nginx教程
  7. NFT游戏开发元宇宙游戏开发游戏源码+搭建
  8. 位置2处的索引超过边界总数matlab,位置 2 处的索引超出数组边界(不能超出 2)。...
  9. 腾讯企业邮箱:授权密码
  10. 烧烤食客钟爱肉类 人均消费价格超正餐