Java調用SQL腳本執(zhí)行常用的方法示例
前言
大家都知道,在Java中調用SQL腳本的方式有多種,在這里只記錄一種自己常用的方式,個人覺得挺實用方便的。
運用ScriptRunner這個類。
ScriptRunner類用于執(zhí)行SQL語句,例如創(chuàng)建數(shù)據(jù)庫schema,或傳入缺省或測試數(shù)據(jù)庫等等。
示例代碼如下:
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.jdbc.ScriptRunner;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* 運行Sql腳本
* sql腳本放在resources下的sql文件夾下
*/
public final class RunSqlScript {
/**
* <p>運行指定的sql腳本
* @param sqlFileName 需要執(zhí)行的sql腳本的名字
*/
public static void run(String sqlFileName) {
try {
// 獲取數(shù)據(jù)庫相關配置信息
Properties props = Resources.getResourceAsProperties("db.properties");
// jdbc 連接信息: 注: 現(xiàn)在版本的JDBC不需要配置driver,因為不需要Class.forName手動加載驅動
String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");
// 建立連接
Connection conn = DriverManager.getConnection(url, username, password);
// 創(chuàng)建ScriptRunner,用于執(zhí)行SQL腳本
ScriptRunner runner = new ScriptRunner(conn);
runner.setErrorLogWriter(null);
runner.setLogWriter(null);
// 執(zhí)行SQL腳本
runner.runScript(Resources.getResourceAsReader("sql/" + sqlFileName + ".sql"));
// 關閉連接
conn.close();
// 若成功,打印提示信息
System.out.println("====== SUCCESS ======");
} catch (IOException | SQLException e) {
e.printStackTrace();
}
}
}
ps下:在現(xiàn)在版本的JDBC驅動中,已經(jīng)不需要像以前一樣加載driver和手動class.forName(driver)來加載驅動了,詳情可以自行點進DriverManager中看,有一個static {} 靜態(tài)代碼塊,里面已經(jīng)為我們加載初始化了驅動。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Java Web監(jiān)聽器Listener接口原理及用法實例
這篇文章主要介紹了Java Web監(jiān)聽器Listener接口原理及用法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
SpringBoot排除自動加載數(shù)據(jù)源方式
這篇文章主要介紹了SpringBoot排除自動加載數(shù)據(jù)源方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Java ArrayList中存放引用數(shù)據(jù)類型的方式
這篇文章主要介紹了Java ArrayList中存放引用數(shù)據(jù)類型的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Java多線程使用阻塞隊列實現(xiàn)生產(chǎn)者消費者模型詳解
這篇文章主要介紹了Java多線程使用阻塞隊列實現(xiàn)生產(chǎn)者消費者模型詳解,主要講解阻塞隊列的特性、實際開發(fā)中常用的到的生產(chǎn)者消費者模型,以及生產(chǎn)者消費者模型解耦合、削峰填谷的好處,需要的朋友可以參考下2023-07-07
聊聊Springboot2.x的session和cookie有效期
這篇文章主要介紹了Springboot2.x的session和cookie有效期,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

