前言
大家都知道,在java中調用sql腳本的方式有多種,在這里只記錄一種自己常用的方式,個人覺得挺實用方便的。
運用scriptrunner這個類。
scriptrunner類用于執行sql語句,例如創建數據庫schema,或傳入缺省或測試數據庫等等。
示例代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
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 需要執行的sql腳本的名字 */ public static void run(string sqlfilename) { try { // 獲取數據庫相關配置信息 properties props = resources.getresourceasproperties( "db.properties" ); // jdbc 連接信息: 注: 現在版本的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); // 創建scriptrunner,用于執行sql腳本 scriptrunner runner = new scriptrunner(conn); runner.seterrorlogwriter( null ); runner.setlogwriter( null ); // 執行sql腳本 runner.runscript(resources.getresourceasreader( "sql/" + sqlfilename + ".sql" )); // 關閉連接 conn.close(); // 若成功,打印提示信息 system.out.println( "====== success ======" ); } catch (ioexception | sqlexception e) { e.printstacktrace(); } } } |
ps下:在現在版本的jdbc驅動中,已經不需要像以前一樣加載driver和手動class.forname(driver)
來加載驅動了,詳情可以自行點進drivermanager中看,有一個static {} 靜態代碼塊,里面已經為我們加載初始化了驅動。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://www.cnblogs.com/chansblogs/p/8818071.html