Java執行SQL指令碼檔案到資料庫

2021-09-11 06:17:08 字數 1680 閱讀 5502

**:runsqlservice:

@autowired

private runsqldao runsqldao;

/*** 讀取檔案內容到sql中執行

* @param sqlpath sql檔案的路徑:如:d:/testproject/web/sql/指令碼.sql

*/public void runsqlbyreadfilecontent(string sqlpath) throws exception

} catch (exception e)

}/**

* 以行為單位讀取檔案,常用於讀面向行的格式化檔案

*/private string readfilebylines(string filepath) throws exception

reader.close();

} catch (ioexception e) finally catch (ioexception e1) }}

return str.tostring();

}

runsqldao :

/**

* @param sqlstr

*/public void runsqlbysqlstr(string sqlstr)

sqlmap:

這種寫法:只支援資料的變化(新增、修改、刪除),且sql檔案內容以begin開始,以end結束。無法更新表字段修改等操作。

方式二;使用scriptrunner

**:runsqlservice:

/**

* 執行sql指令碼檔案 使用scriptrunner

* @param sqlpath sql檔案的路徑:如:d:/testproject/web/sql/指令碼.sql

*/public void runsqlbyscriptrunner(string sqlpath) throws exception catch (exception e)

}

這種寫法:只能有一行sql,即一次執行乙個sql語句,否則就會報錯。

方式三:使用scriptutils

**:runsqlservice:(以下兩種方式:指令碼.sql 和runsqlservice 在同一目錄下)

方法(1)

/**

* 執行sql指令碼檔案 使用spring工具類

*/public void runsqlbyspringutils() throws exception catch (exception e)

}

方法(2)

/**

* 執行sql指令碼檔案 使用spring工具類

*/public void runsqlbyspringutils() throws exception catch (exception e)

}

載入的sql檔案不在class下

/**

* @param sqlpath

*/public void runsqlbyspringutils(string sqlpath) catch (exception e)

}

方法(1),指令碼.sql檔案必須是ansi的,否則執行到資料中漢字是亂碼。

方法(2)解決了方法(1)的問題

ADO執行SQL指令碼檔案

bool cadodatabase open lpctstr lpstrconnection,lpctstr lpstruserid,lpctstr lpstrpassword return open lpctstr strconnect bool cadodatabase connectsqlse...

PHP執行SQL指令碼檔案

header content type text html charset utf 8 function populate db dbname,dbprefix,sqlfile global errors mysql select db dbname mysql query set names ut...

mysql 執行sql指令碼檔案

方法一使用cmd命令執行 windows下,unix或linux在的其控制台下 d mysql bin mysql uroot p123456 dtest注意 a 如果在sql指令碼檔案中使用了use 資料庫,則 d資料庫選項可以忽略 b 如果 mysql的bin目錄 中包含空格,則需要使用 包含,...