Java調(diào)用SQL腳本執(zhí)行常用的方法示例
前言
大家都知道,在Java中調(diào)用SQL腳本的方式有多種,在這里只記錄一種自己常用的方式,個(gè)人覺得挺實(shí)用方便的。
運(yùn)用ScriptRunner這個(gè)類。
ScriptRunner類用于執(zhí)行SQL語句,例如創(chuàng)建數(shù)據(jù)庫schema,或傳入缺省或測(cè)試數(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; /** * 運(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ù)庫相關(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ò)誤頁面處理的方法
本篇文章主要介紹了spring boot下 500 404 錯(cuò)誤頁面處理的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Reactor中的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-04java9版本特性資源自動(dòng)關(guān)閉的語法增強(qiáng)
這篇文章主要為大家介紹了java9版本特性資源自動(dòng)關(guān)閉的語法增強(qiáng)的詳細(xì)使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03Spring注解驅(qū)動(dòng)之@EventListener注解使用方式
這篇文章主要介紹了Spring注解驅(qū)動(dòng)之@EventListener注解使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Mybatis邏輯分頁與物理分頁P(yáng)ageHelper使用解析
這篇文章主要為大家介紹了Mybatis邏輯分頁與物理分頁P(yáng)ageHelper使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12