這篇文章主要介紹了如何使用JDBC實(shí)現(xiàn)工具類抽取,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有忻州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1、JDBC工具類抽取
上一篇做了JDBC的基本操作,但是獲取連接及釋放資源是比較重復(fù)的操作,可以抽取工具類而達(dá)到代碼重用的目的
工程結(jié)構(gòu)如圖
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); //獲取相關(guān)參數(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ù)據(jù)
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(); //設(shè)置自動提交關(guān)閉 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(); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。