如何使用JDBC實現(xiàn)工具類抽取
這篇文章主要介紹了如何使用JDBC實現(xiàn)工具類抽取,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1、JDBC工具類抽取
上一篇做了JDBC的基本操作,但是獲取連接及釋放資源是比較重復的操作,可以抽取工具類而達到代碼重用的目的
工程結構如圖
JDBC工具類代碼
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://192.168.47.151:3306/web?useUnicode=true&characterEncoding=utf8 username=root password=root
JDBCUtils.java
package com.rookie.bigdata.util;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.ResourceBundle;
/**
* Created by dell on 2019/5/22.
*/
package com.rookie.bigdata.util;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.ResourceBundle;
/**
* Created by dell on 2019/5/22.
*/
public class JDBCUtils {
private static String driver;
private static String url;
private static String username;
private static String password;
// //靜態(tài)代碼塊加載配置文件信息
// static {
// ResourceBundle db = ResourceBundle.getBundle("db");
// driver = db.getString("driver");
// url = db.getString("url");
// username = db.getString("username");
// password = db.getString("password");
// }
//靜態(tài)代碼塊加載配置文件信息
static {
try {
//獲取類加載器
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
//通過類加載器的方法獲取一個輸入流
InputStream resourceAsStream = classLoader.getResourceAsStream("db.properties");
Properties properties = new Properties();
properties.load(resourceAsStream);
//獲取相關參數(shù)的值
driver = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 獲取連接
*
* @return
*/
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 釋放資源
* @param conn
* @param pstmt
* @param rs
*/
public static void relase(Connection conn, PreparedStatement pstmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
2、批量插入數(shù)據
package com.rookie.bigdata;
import com.rookie.bigdata.util.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
/**
* CREATE TABLE `user` (
* `USERNAME` varchar(30) DEFAULT NULL COMMENT '用戶名',
* `PASSWORD` varchar(10) DEFAULT NULL COMMENT '密碼'
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
*/
public class JDBCBatch {
public static void main(String[] args) throws Exception {
Connection connection = JDBCUtils.getConnection();
//設置自動提交關閉
connection.setAutoCommit(false);
PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO USER VALUES (?,?)");
for (int i = 1; i <= 5000; i++) {
preparedStatement.setString(1, "張三" + i);
preparedStatement.setString(2, "123" + i);
preparedStatement.addBatch();
if (i % 1000 == 0) {
preparedStatement.executeUpdate();
connection.commit();
preparedStatement.clearBatch();
}
}
preparedStatement.executeUpdate();
connection.commit();
preparedStatement.clearBatch();
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring Security基于數(shù)據庫的ABAC屬性權限模型實戰(zhàn)開發(fā)教程
這篇文章主要介紹了Spring Security基于數(shù)據庫的ABAC屬性權限模型實戰(zhàn)開發(fā)教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2025-04-04
Springboot實現(xiàn)定時任務的4種方式舉例詳解
在我們開發(fā)項目過程中經常需要定時任務來幫助我們來做一些內容,下面這篇文章主要給大家介紹了關于Springboot實現(xiàn)定時任務的4種方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01
Spring實戰(zhàn)之使用注解實現(xiàn)聲明式事務操作示例
這篇文章主要介紹了Spring實戰(zhàn)之使用注解實現(xiàn)聲明式事務操作,結合實例形式詳細分析了spring使用注解實現(xiàn)聲明式事務相關配置、接口實現(xiàn)與使用技巧,需要的朋友可以參考下2020-01-01
mybatis generator 配置 反向生成Entity簡單增刪改查(推薦)
這篇文章主要介紹了mybatis generator 配置 反向生成Entity簡單增刪改查(推薦)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-12-12
如何利用反射生成?MyBatisPlus中QueryWrapper動態(tài)條件
這篇文章主要介紹了如何利用反射生成?MyBatisPlus中QueryWrapper動態(tài)條件,分享在MyBatisPlus中經常會用到代碼來構造查詢條件等內容,需要的小伙伴可以參考一下2022-02-02
Springboot通過配置WebMvcConfig處理Cors非同源訪問跨域問題
這篇文章主要介紹了Springboot通過配置WebMvcConfig處理Cors非同源訪問跨域問題,關于Cors跨域的問題,前端有代理和jsonp的常用方式解決這種非同源的訪問拒絕策略2023-04-04
使用Mybatis遇到的坑之Integer類型參數(shù)的解讀
這篇文章主要介紹了使用Mybatis遇到的坑之Integer類型參數(shù)的解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03

