java直接調用並執行sql腳本
阿新 • • 發佈:2018-12-08
trace public 127.0.0.1 pass 亂碼 type string 數據庫名 out
直接上代碼
package com.qfx.test; import java.io.File; import java.io.FileReader; import java.io.Reader; import java.nio.charset.Charset; import java.sql.Connection; import java.sql.DriverManager; import org.apache.ibatis.io.Resources; import org.apache.ibatis.jdbc.ScriptRunner; public class ScriptRunnerExecSql { private static String dbHost="127.0.0.1"; // 數據庫地址 private static String dbName="test"; // 數據庫名稱 private static String userName = "test"; // 登錄名稱 private static String userPassword = "test111"; // 登錄密碼 private static String dbPort="3306"; // 數據庫端口號 public static void main(String[] args) { try { Connection conn =getMySqlConnection(); ScriptRunner runner = new ScriptRunner(conn); Resources.setCharset(Charset.forName("UTF-8")); //設置字符集,不然中文亂碼插入錯誤 runner.setLogWriter(null);//設置是否輸出日誌 // 絕對路徑讀取 // Reader read = new FileReader(new File("f:\\test.sql")); // 從class目錄下直接讀取 Reader read = Resources.getResourceAsReader("test.sql"); runner.runScript(read); runner.closeConnection(); conn.close(); System.out.println("sql腳本執行完畢"); } catch (Exception e) { System.out.println("sql腳本執行發生異常"); e.printStackTrace(); } } /** * @功能描述: 獲取數據庫連接 * * @return * @throws Exception */ public static Connection getMySqlConnection() throws Exception { Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://"+dbHost+":"+dbPort+"/"+dbName+"?useUnicode=true&characterEncoding=utf-8&port="+dbPort+"&autoReconnect=true"; return DriverManager.getConnection(url,userName,userPassword); } }
目錄結構及jar包
java直接調用並執行sql腳本