mysql.properties配置文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db02?rewriteBatchedStatements=true
user=root_db02
password=root_db02

JDBCUtils类

package com.utils;import java.io.FileReader;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;/*** Created by Lenovo on 2022-05-10-下午 7:51.** @author 小象* @version 1.0*/
public class JDBCUtils {/*在jdbc操作中,获取连接和释放资源是经常使用到,可以将其封装JDBC连接的工具类JDBCUtils*/// 使用 static 修饰的属性和代码块,原因:只需加载一次,无需多次加载private static final String driver;private static final String url;private static final String user;private static final String password;static {try {// 获取配置文件信息Properties properties = new Properties();properties.load(new FileReader("src/com/connect_database/mysql.properties"));// 读取配置文件driver = properties.getProperty("driver");url = properties.getProperty("url");user = properties.getProperty("user");password = properties.getProperty("password");// 加载驱动Class.forName(driver);} catch (ClassNotFoundException | IOException e) {// IOException 编译类型必须处理,但是建议将其转换为运行类型,可以选择抛出(默认)/处理(捕获)throw new RuntimeException(e);}}/*** <h3>获取连接 返回connection</h3>*/public static Connection getConnection() {try {return DriverManager.getConnection(url, user, password);} catch (SQLException e) {throw new RuntimeException(e);}}/*** <h3>关闭资源</h3>* 1. 如果需要关闭资源,就传入对象,否则传入 null <br>* 2. 使用Statement 接口类型,保证Statement 和 PreparedStatement对象都可以传入*/public static void close(ResultSet resultSet, Statement statement, Connection connection) {try {if (resultSet != null) {resultSet.close();}if (statement != null) {statement.close();}if (statement != null) {connection.close();}} catch (SQLException e) {throw new RuntimeException(e);}}
}

JDBCUtilsUse类

package com.utils;import org.junit.jupiter.api.Test;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/*** Created by Lenovo on 2022-05-10-下午 8:21.** @author 小象* @version 1.0*/
@SuppressWarnings("NewClassNamingConvention")
public class JDBCUtilsUse {/*** <h2>封装JDBCUtils</h2>** @param args 形参数组*/public static void main(String[] args) {}/*** <h3>使用JDBCUtils工具类完成对db02数据库下admin表的 增/删/改</h3>*/@Test@SuppressWarnings({"SqlNoDataSourceInspection", "SqlResolve"})public void dml() {// 得到连接Connection connection = null;PreparedStatement preparedStatement = null;// 执行sqlString deleteSql = "delete from admin where name = ?";try {connection = JDBCUtils.getConnection();preparedStatement = connection.prepareStatement(deleteSql);preparedStatement.setString(1, "jack");int rows = preparedStatement.executeUpdate();System.out.println(rows > 0 ? "操作成功" : "操作失败");} catch (SQLException e) {e.printStackTrace();} finally {// 关闭资源JDBCUtils.close(null, preparedStatement, connection);}}/*** <h3>使用JDBCUtils工具类完成对db02数据库下admin表的 查询</h3>*/@Test@SuppressWarnings({"SqlNoDataSourceInspection", "SqlResolve"})public void select() {// 得到连接Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;// 执行sqlString selectSql = "select * from admin where name = ?";try {connection = JDBCUtils.getConnection();preparedStatement = connection.prepareStatement(selectSql);preparedStatement.setString(1, "mack");resultSet = preparedStatement.executeQuery();while (resultSet.next()) {String name = resultSet.getString("name");String pwd = resultSet.getString("pwd");System.out.println(name + "\t" + pwd);}} catch (SQLException e) {e.printStackTrace();} finally {// 关闭资源JDBCUtils.close(resultSet, preparedStatement, connection);}}}

JDBCUtils工具库相关推荐

  1. Druid 连接池 JDBCUtils 工具类的使用

    Druid工具介绍 它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. 支持所有JDBC兼容的数据库,包括Oracle.MySQL. ...

  2. TinyCrayon-iOS-SDK:强大到使人惊讶的 Mask 及切图工具库

    原文链接:https://github.com/TinyCrayon/TinyCrayon-iOS-SDK TinyCrayon-iOS-SDK:强大到使人惊讶的 Mask 及切图工具库.# 为开源点 ...

  3. Python培训教程分享:“高效实用” 的Python工具库

    作为一名合格Python技术员,对于Python工具库的使用是少不了的,本期Python培训教程就为大家分享的是""高效实用" 的Python工具库",希望能够 ...

  4. 工具库 --- Validator (JS正则)

    工具库 --- Validator 今天写的是一个正则验证类 单例模式 工具库地址:github.com/WeForStudy/- npm地址:www.npmjs.com/package/slm- 单 ...

  5. 细说 Java 主流日志工具库

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 作者:静默虚空 juejin.im/post/5c8f35bfe51d4545cc650567 ...

  6. combo:机器学习模型合并工具库

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 机器学习中的模型合并(model combination)可以通过合并多个模型达到提升 ...

  7. Python超简单容易上手的画图工具库

    今天,在网上发现一款很棒的python画图工具库.很简单的api调用就能生成漂亮的图表.并且可以进行一些互动. pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开 ...

  8. 细说Java主流日志工具库

    细说 Java 主流日志工具库 日志框架 java.util.logging (JUL) Log4j Logback Log4j2 Log4j vs Logback vs Log4j2 日志门面 co ...

  9. wxWidgets与其他工具库的比较(下)

    GTK+ ● GTK+的网站:www.gtk.org: ● GTK+原本是Gimp的一个工具库,是在LGPL协议下发布的Unix系统GUI库: ● GTK+已经被移植到Windows,VMS以及其他的 ...

最新文章

  1. 域控制器安装过程中断电!与Windows Server 2008 林功能级别提升之“冬夜”分享...
  2. 小工具查看MYSQL数据文件块和类型
  3. python函数的参数类型,Python函数的主要参数类型
  4. 集成算法中的Bagging
  5. 沫沫金:2014最新全浏览器兼容左列固定右列自适应宽度技巧大公开
  6. SQL Server 设计开发系列(文章索引)
  7. python如何执行代码漏洞_在漏洞利用Python代码真的很爽
  8. 废柴日记之中秋特辑:那些年我们一直分不清楚的近义词们①
  9. c++中的fork函数_fork函数的作用_fork函数创建进程
  10. selenium下载和安装
  11. 2013年第四届蓝桥杯Java程序设计本科B组决赛 农场阳光(编程大题)
  12. Vue学习笔记02——Vue路由
  13. 通过Nginx反向代理实现IP访问分流
  14. uni-app 接入高德地图案例
  15. 开源的Android视频播放器
  16. 海纳百川 有容乃大, 壁立千仞 无欲则刚
  17. matlab中累加的小程序,微信小程序学习用demo:数字累加,动态效果
  18. leetcode算法算题记录-数组--快慢指针
  19. Qt框架类图大全,类继承关系一图搞定
  20. js 定时网页点击_前端面试题熬夜吐血(js进阶篇)

热门文章

  1. CAD表格怎么导出到Excel?CAD表格导出
  2. arduino驱动MG996舵机+stm32f103驱动舵机
  3. win xp查询计算机配置文件,Win XP文件夹属性没有共享选项卡
  4. Nodejs vm/vm2沙箱逃逸
  5. 【单片机毕业设计】【mcuclub-110】蓝牙空气质量检测(CO) | 环境检测 | 气体检测 | 室内有害气体检测 | 一氧化碳检测
  6. 艾默生质量流量计的正确安装
  7. 用VHDL语言实现电子计时时钟
  8. 用c 语言中 矩阵乘法,C中实现矩阵乘法的一种高效的方法
  9. 一次函数在c语言中,一次函数练习题精选
  10. 微型计算机的输入设备教案,高中信息技术教案设计:微型计算机的输入 输入设备1.doc...