2016-12-01 3 views
-3

こんにちは、JavaでSQLスクリプトを実行する最善の方法は何ですか?私はdbとの接続があり、スクリプトを実行して現在いくつかのエラーが発生していると思われるコードをいくつか選択しました。JavaでSQLスクリプトを実行する方法

public class DatabaseConnection { 

private String userName = ""; 
private String password = ""; 
private String serverName = ""; 
private String portNumber = ""; 




public Connection getConnection() throws SQLException { 

    Connection conn = null; 

    Properties connectionProps = new Properties(); 
    connectionProps.put("user", this.userName); 
    connectionProps.put("password", this.password); 
    String connectionString = "jdbc:mysql://" + 
      this.serverName + 
      ":" + this.portNumber; 

    System.out.println("Connection String: " + connectionString); 

    conn = DriverManager.getConnection(connectionString, connectionProps); 

    System.out.println("Connected to database"); 
    return conn; 


    **ScriptRunner runner = new ScriptRunner(conn, connectionString, connectionProps) 
    String file = "resources/cleanDatabaseScript.sql"; 
    System.out.println("retreived script"); 
    runner.runScript(new BufferedReader(new FileReader(file)));** 


} 

現在、ScriptRunnerセクションは苦労しています。

+0

どのようなエラーが表示されますか? – Janar

+0

現在、これはscriptRunnerの行にありますが、コピーした元のコードを私のものと一致するように変更しました。 エラー:(47、88)java: ';'予想通り 私はconn、connectionString、connectionPropsを追加しました – Peter

+0

なぜ 'ScriptRunner runner ...'行に ';'が最後にないのですか? –

答えて

2

は、ここでのMySQLに接続するための基本的なクラスです:あなたはそれを無視してこのことを理解していない場合

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class DbConnection { 

    private static Connection singleConnection ; 
    private static Statement singleStatement; 


    public static synchronized Statement getStatement() throws SQLException{ 

     if (singleConnection == null){ 
      singleConnection = DriverManager.getConnection("jdbc:mysql://HereTheHost:HereThePortNumber/HereTheDataBaseName","HereTheUserName","HereThePassWord"); 
      if (singleStatement == null){ 
       singleStatement = singleConnection.createStatement(); 
       System.out.println("Connection Success !"); 
      } 
     } 
     return singleStatement; 
    } 

} 

この例では、データベース接続のインスタンスを1つだけ持っていることを確認します。

+0

テーブルからデータを取得するには、次の例を参照してください。https://github.com/Meshredded/Java8_Planning_Manager/blob/master/sources/src/memoryDatabaseExchange/CoursLoader.java – Meshredded

+0

ありがとうございますロットクリーナーが、私はそのポイントが逃していると思います。あなたはデータベース接続を改善しました。プロジェクトにファイルがあることを説明できませんでした。 String file = "resources/cleanDatabaseScript.sql"; 私が必要とするのは、データベース接続後にスクリプトを実行することだけです。私のせいで、私は元の投稿で正しく説明しなかった。 – Peter

+0

ファイルがsqliteデータベースでなければならないので、別のドライバが必要です – Meshredded

関連する問題