为了简化JDBC的注册驱动、创建连接对象等操作,可以使用JDBC工具类以及配置文件。

  • 配置文件
url = jdbc:mysql://localhost:3308/db4?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
user = root
password = 123456
driver = com.mysql.cj.jdbc.Driver
  • JDBCUtils工具类
package utils;import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;/*** JDBC工具类*/public class JDBCUtils {private static String url;private static String user;private static String password;private static String driver;/*** 文件的读取,只需要读取一次即可拿到这些值,使用静态代码块*/static {// 读取资源文件,获取值。try {// 创建Properties集合类Properties pr = new Properties();// 获取src路径下文件的方式--->Classloader 类加载器ClassLoader classLoader = JDBCUtils.class.getClassLoader();// res定位了“jdbc.properties"文件的绝对路径URL res = classLoader.getResource("jdbc.properties");// 获取res的字符串路径String path = res.getPath();System.out.println(path);// 加载文件//pr.load(new FileInputStream("src/jdbc.properties"));pr.load(new FileReader(path));// 获取数据,赋值url = pr.getProperty("url");user = pr.getProperty("user");password = pr.getProperty("password");driver = pr.getProperty("driver");// 注册驱动Class.forName(driver);} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 获取连接* @return 连接对象*/public static Connection getConnection() throws SQLException {return DriverManager.getConnection(url,user,password);}/*** 释放资源* @param stmt1* @param conn*/public static void close(Statement stmt1, Statement stmt2, Connection conn){if (stmt1!=null){try {stmt1.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (stmt2!=null){try {stmt2.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (conn!=null){try {conn.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}/*** 释放资源* @param rs* @param stmt* @param conn*/public static void close(ResultSet rs,Statement stmt, Connection conn){if (stmt!=null){try {stmt.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (conn!=null){try {conn.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (rs!=null){try {rs.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}}
  • 事务操作
package jdbc;import utils.JDBCUtils;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/*** 事务操作*/
public class JDBCDemo7 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps1 = null;PreparedStatement ps2 = null;ResultSet rs = null;try {//获取连接conn = JDBCUtils.getConnection();// 定义sqlString sql1 = "update account set balance = balance - ? where id = ?";String sql2 = "update account set balance = balance + ? where id = ?";// 获取执行sql对象ps1 = conn.prepareStatement(sql1);ps2 = conn.prepareStatement(sql2);// 设置参数ps1.setInt(1,500);ps1.setInt(2,1);ps2.setInt(1,500);ps2.setInt(2,2);// 执行sqlps1.executeUpdate();ps2.executeUpdate();} catch (SQLException throwables) {throwables.printStackTrace();}finally {JDBCUtils.close(ps1,ps2,conn);}}
}

JDBCUtils工具类的创建和使用相关推荐

  1. JDBCUtils工具类编写

    什么是JDBC: JDBC全称: java database connection. Jdbc主要用于java代码连接数据库,java代码就可以发送sql语句给数据库服务器,操作数据库中数据. 获取连 ...

  2. 05:JDBC的开发步骤,及其抽取的JDBCUtils工具类

    1.1.JDBC是什么? JDBC是一种用于执行SQL语句的Java API.(Java Data Base Connectivity,java数据库连接),是Java访问数据库的标准规范,可以为不同 ...

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

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

  4. php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

  5. 【JDBC】JDBCUtils工具类开发

    [JDBC]JDBCUtils工具类开发 1.JDBCUtils工具类开发 2.使用JdbcUtils工具类测试DML语句 3.使用JdbcUtils工具类测试查询语句 1.JDBCUtils工具类开 ...

  6. 缩放图片工具类,创建缩略图、伸缩图片比例

    支持将Image的宽度.高度缩放到指定width.height,并保存在指定目录 通过目标对象的大小和标准(指定)大小计算出图片缩小的比例 可以设置图片缩放质量,并且可以根据指定的宽高缩放图片 pac ...

  7. JDBCUtils工具类的基础学习笔记

    注:以下整理笔记来自自己的公众号,适合初学者一起探讨,我也是初学者! 创建一个实体类: package com.zx.bean;public class User {private int id;pr ...

  8. JDBC 数据库连接池(JDBCUtils工具类)

    文章目录 前言 一.JDBC作用? 二.获取数据的连接方式 三.Statement/PreStatement执行sql 四.ResultSet结果集 五.JDBC相关API 六.事务 七.批处理 八. ...

  9. JavaWeb基础之JdbcUtils工具类2.0

    使用c3p0连接池来改版JdbcUtils工具 1. 使用c3p0连接池获取连接,使代码更加简单 1 /** 2 * 使用c3p0连接池做小工具 3 * JdbcUtils v2.0 4 * @aut ...

最新文章

  1. C++中对象数组的构造函数和析构函数调用
  2. OpenJ_Bailian 4148 生理周期
  3. Redis-cluster架构
  4. ie下js不执行的几种可能
  5. Some functions worth remembered in C Library (Updating)
  6. vscode在ubuntu下安装插件,同时配置python虚拟环境、ctrl+鼠标滚轮放大代码窗口设置
  7. 排序算法之快速排序详解
  8. MAC电脑常用快捷键
  9. matlab案例 光学,MATLAB仿真及其在光学课程中的应用.pdf
  10. 28.TCP/IP 详解卷1 --- SMTP:简单邮件传输协议
  11. FlexSIM.ED v4.0 1CD(生产排程,虚拟管理,能力平衡软件)
  12. openssl的算法套件格式映射IANA的格式
  13. 当在浏览器中输入 Google.com 并按下回车之后发生了什么?
  14. Python mysql的常用操作
  15. 微信语音怎么保存 微信语音导出文件夹教程
  16. 如何笔记本盖上连接显示器不熄屏?
  17. 读懂DeFi四大金融原语的演变:流动性、杠杆、风险和套利
  18. 用opencv及cuda编译好的dakrnet训练yolo4
  19. 设置Visual Studio颜色主题
  20. 快到家了【经济学人】

热门文章

  1. 全群禁言群检测删除投票广告的方法
  2. 计算机硬件组成学情分析,初中信息技术_探究计算机的硬件组成教学设计学情分析教材分析课后反思.doc...
  3. 上海青少年python培训机构
  4. 【企业】如实利用 250 定律,服务好客户
  5. 关于PPT转视频后没有声音的解决办法
  6. iOS微信小程序border边框上下不显示的问题
  7. springboot上传文件大小限制设置
  8. 含绝对值的不等式恒成立_Simplelife_新浪博客
  9. 《DW学习笔记》 模块一 :初识网页设计
  10. 服装PLM解决方案能带给企业什么?