前言
大家都知道,在java中調(diào)用sql腳本的方式有多種,在這里只記錄一種自己常用的方式,個(gè)人覺(jué)得挺實(shí)用方便的。
運(yùn)用scriptrunner這個(gè)類。
scriptrunner類用于執(zhí)行sql語(yǔ)句,例如創(chuàng)建數(shù)據(jù)庫(kù)schema,或傳入缺省或測(cè)試數(shù)據(jù)庫(kù)等等。
示例代碼如下:
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; /** * 運(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)
來(lái)加載驅(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à)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。
原文鏈接:http://www.cnblogs.com/chansblogs/p/8818071.html