Java調(diào)用SQL腳本執(zhí)行常用的方法示例
前言
大家都知道,在Java中調(diào)用SQL腳本的方式有多種,在這里只記錄一種自己常用的方式,個(gè)人覺得挺實(shí)用方便的。
運(yùn)用ScriptRunner這個(gè)類。
ScriptRunner類用于執(zhí)行SQL語(yǔ)句,例如創(chuàng)建數(shù)據(jù)庫(kù)schema,或傳入缺省或測(cè)試數(shù)據(jù)庫(kù)等等。
示例代碼如下:
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;
/**
* 運(yùn)行Sql腳本
* sql腳本放在resources下的sql文件夾下
*/
public final class RunSqlScript {
/**
* <p>運(yùn)行指定的sql腳本
* @param sqlFileName 需要執(zhí)行的sql腳本的名字
*/
public static void run(String sqlFileName) {
try {
// 獲取數(shù)據(jù)庫(kù)相關(guān)配置信息
Properties props = Resources.getResourceAsProperties("db.properties");
// jdbc 連接信息: 注: 現(xiàn)在版本的JDBC不需要配置driver,因?yàn)椴恍枰狢lass.forName手動(dòng)加載驅(qū)動(dòng)
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"));
// 關(guān)閉連接
conn.close();
// 若成功,打印提示信息
System.out.println("====== SUCCESS ======");
} catch (IOException | SQLException e) {
e.printStackTrace();
}
}
}
ps下:在現(xiàn)在版本的JDBC驅(qū)動(dòng)中,已經(jīng)不需要像以前一樣加載driver和手動(dòng)class.forName(driver)來加載驅(qū)動(dòng)了,詳情可以自行點(diǎn)進(jìn)DriverManager中看,有一個(gè)static {} 靜態(tài)代碼塊,里面已經(jīng)為我們加載初始化了驅(qū)動(dòng)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
spring boot下 500 404 錯(cuò)誤頁(yè)面處理的方法
本篇文章主要介紹了spring boot下 500 404 錯(cuò)誤頁(yè)面處理的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Reactor中的onErrorContinue?和?onErrorResume
這篇文章主要介紹了Reactor中的onErrorContinue?和?onErrorResume,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09
詳解Spring Cloud Eureka多網(wǎng)卡配置總結(jié)
本篇文章主要介紹了詳解Spring Cloud Eureka多網(wǎng)卡配置總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
java9版本特性資源自動(dòng)關(guān)閉的語(yǔ)法增強(qiáng)
這篇文章主要為大家介紹了java9版本特性資源自動(dòng)關(guān)閉的語(yǔ)法增強(qiáng)的詳細(xì)使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
Spring注解驅(qū)動(dòng)之@EventListener注解使用方式
這篇文章主要介紹了Spring注解驅(qū)動(dòng)之@EventListener注解使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Mybatis邏輯分頁(yè)與物理分頁(yè)P(yáng)ageHelper使用解析
這篇文章主要為大家介紹了Mybatis邏輯分頁(yè)與物理分頁(yè)P(yáng)ageHelper使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

