网站首页 > 教程分享 正文
前一小节介绍了JDBC之事务的使用,到目前为止,我们已经将JDBC中的常见知识点基本上介绍完了,这篇文章我们就自己来编写一个JDBC工具类,封装通用的新增、删除、更新、查询等方法,方便后续直接操作数据库。
1.1、获取数据库连接
操作数据库的第一步,就是要获取到数据库的连接,所以这里创建一个获取数据库连接的getConnection()方法。
package com.gitcode.jdbc.chapter13;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* @author ZhuYouBin
* @version 1.0.0
* @date 2024/6/29 08:36
* @description JDBC 工具类
*/
public class JdbcUtil {
private static final String URL = "jdbc:mysql://localhost:3306/jdbc-study";
private static final String USERNAME = "root";
private static final String PASSWORD = "root";
/**
* 获取数据库连接
*/
public static Connection getConnection() {
Connection conn;
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
throw new RuntimeException("数据库连接获取失败!", e);
}
return conn;
}
}
1.2、关闭连接资源
数据库资源使用完成之后,就需要将其关闭,以免资源的浪费,所以这里创建一个关闭资源连接的close()方法。
/**
* 按照顺序,依次释放资源
* @param conn 数据库连接对象
* @param stmt 语句对象
* @param rs 结果集对象
*/
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
throw new RuntimeException("关闭数据库连接资源失败!", e);
}
}
1.3、更新数据
/**
* 执行更新
*
* @param sql 执行的SQL语句
* @param params ?占位符参数
* @return 返回执行更新记录数
*/
public static int executeUpdate(String sql, Object... params) {
Connection conn = getConnection();
PreparedStatement stmt = null;
int result = 0;
try {
// 预编译语句
stmt = conn.prepareStatement(sql);
// 设置参数值
for (int i = 0; i < params.length; i++) {
stmt.setObject(i + 1, params[i]);
}
// 执行SQL语句
result = stmt.executeUpdate();
} catch (SQLException e) {
throw new RuntimeException("执行SQL更新语句失败!", e);
} finally {
close(conn, stmt, null);
}
return result;
}
1.4、删除数据
删除数据的方法,可以直接复用更新的方法,只是传入的SQL语句是delete而已。
/**
* 执行删除
*
* @param sql 执行的SQL语句
* @param params ?占位符参数
* @return 返回删除记录数
*/
public static int executeDelete(String sql, Object... params) {
return executeUpdate(sql, params);
}
1.5、新增数据(单条)
单条新增数据的方法,也可以直接复用更新的方法,只是传入的SQL语句是insert而已。
/**
* 执行新增
*
* @param sql 执行的SQL语句
* @param params ?占位符参数
* @return 返回执行记录数
*/
public static int executeInsert(String sql, Object... params) {
return executeUpdate(sql, params);
}
1.6、批量新增
/**
* 批量执行新增
*
* @param sql 执行的SQL语句
* @param params ?占位符参数
*/
public static void batchInsert(String sql, List<Object[]> params) {
Connection conn = getConnection();
PreparedStatement stmt = null;
try {
// 预编译语句
stmt = conn.prepareStatement(sql);
// 设置参数值
for (Object[] param : params) {
for (int i = 0; i < param.length; i++) {
stmt.setObject(i + 1, param[i]);
}
// 加入批处理
stmt.addBatch();
}
// 执行SQL语句
stmt.executeBatch();
} catch (SQLException e) {
throw new RuntimeException("执行SQL语句失败!", e);
} finally {
close(conn, stmt, null);
}
}
1.7、查询数据
/**
* 执行查询
*
* @param sql 执行的SQL语句
* @param params ?占位符参数
* @return 结果集对象
*/
public static ResultSet executeQuery(String sql, Object... params) {
Connection conn = getConnection();
PreparedStatement stmt;
ResultSet rs = null;
try {
stmt = conn.prepareStatement(sql);
// 设置参数值
for (int i = 0; i < params.length; i++) {
stmt.setObject(i + 1, params[i]);
}
// 执行SQL语句
rs = stmt.executeQuery();
} catch (SQLException e) {
throw new RuntimeException("执行SQL语句失败!", e);
}
return rs;
}
1.8、源代码获取
源代码地址:
https://gitcode.com/qq_39826207/jdbc-study/tree/chapter-jdbc-13
今天就到这里,未完待续~~
猜你喜欢
- 2024-10-14 Java之Spring4:JDBC(java之父余胜军网站)
- 2024-10-14 《JDBC》第09节:JDBC之DatabaseMetaData数据库元数据对象
- 2024-10-14 《JDBC》第18节:JDBC之数据库连接池Hikari的使用(软编码方式)
- 2024-10-14 flink教程-详解flink 1.11 中的JDBC Catalog
- 2024-10-14 肝!Spring JDBC持久化层框架“全家桶”教程
- 2024-10-14 JDBC的基础使用(jdbc 教程)
- 2024-10-14 大数据开发基础之JAVA基础-JDBC基础知识
- 2024-10-14 JDBC基础整理(jdbc 教程)
- 2024-10-14 小白都能看懂的JDBC事务(jdbc实现事务管理)
- 2024-10-14 Spring JdbcTemplate讲解(spring的jdbc模板)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)