2009-05-04 11 views
0

mysqlのjdbcとの接続を設定する最良の方法は何ですか? そして、簡単な文を実行してください。どうやってするか? ありがとうございます。mysqlとjdbcの接続を設定する最も良い方法/テンプレートは何ですか?

+1

最適な方法は要件によって異なりますので、より多くの情報がこれに答えるのに役立ちます。 Tomcatのようなサーブレットエンジンにデプロイしようとしていますか? – Pool

+0

スタンドアロンアプリケーション - シッククライアント。 – feiroox

答えて

3

のMySQL/JDBCのための基本的な決まり文句は、このような何かを行く:

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
Connection conn = DriverManager.getConnection("jdbc:mysql://databaseName"); 

声明実行します:文を閉じ

Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT * from tableName"); 
while (rs.next()) { 
    System.out.println(rs.getString(1)); 
} 

は、接続を取得します接続

ドライバをインストールしているか、CLASSPATHにあるかどうかを確認するだけです。

+0

Class.forNameはもう必要ありません – dfa

1

あなたのケースによって異なります。

Class.forName ("yourDriverName"); 

Connection cn = DriverManager.getConnection ("db url"); 
Statement st = cn.createStatement(); 
ResultSet rs = st.executeQuery ("select * from foo"); 
while (rs.next()) { 
    doSmth(); 
} 
rs.close(); 
st.close(); 
cn.close(); 

しかし、あなたは実際のアプリケーション(特にWebアプリケーション)を開発しているならば、データソースのを使用します。

あなたは、単にあなたのような単一の接続を使用する必要があり、スタンドアロンアプリケーションからいくつかのクエリを実行する必要がある場合

。あなたのDBとWebサーバーのマニュアルを読んで、データソースの設定方法を読んでください。 DataSourceを使用すると、接続プールを使用することができます。パフォーマンスを向上させるには時間がかかるでしょう。

DataSourceの設定は難しい処理ではありません。

0

Spring FrameworkのJDBC抽象化フレームワークを使用してください。コンテキストXMLファイルを作成し、JDBCテンプレートクラスを使用するだけです。 XML + Javaコードのほんの数行で、あなたが進化します。利点は、コンパイルされたJavaから接続の詳細を保持することです。参照: http://www.springbyexample.org/examples/simple-spring-jdbc-template.html

2

これは21世紀です - JPA(ORM)実装を使用してください。しかし、あなたがメタルに戻ることを主張するなら(下投票の危険にさらされる) -

いくつかのドライバからJDBC接続を得る方法はたくさんあります。ハードワイヤードのクラス名でリフレクションを使用することは最も一般的であり、おそらくほとんどの脳が損傷します。クラス名をハードワイヤリングする場合は、通常のコード(コンパイラはタイプミスを受け取り、対処するための余分な例外がなく、読みやすく、明示的な依存関係、優れたツールサポートなど)を得るかもしれません。

また、安全にリソースを消去する習慣を身に付けてください。だから、

public static void main(String[] args) throws SQLException { 
    Driver driver = new com.mysql.jdbc.Driver(); 
    Connection connection = driver.connect(
     "jdbc:mysql://mydatabase", 
     new java.util.Properties() {{ 
       put("user", "fred"); 
     }} 
    ); 
    try { 
     PreparedStatement statement = connection.prepareStatement(
      "SELECT insideLeg FROM user WHERE name=?" 
     ); 
     try { 
      statement.setString(1, "jim"); 
      ResultSet results = statement.executeQuery(); 
      try { 
       if (results.next() { 
        System.out.println("= "+results.getLong(1)); 
       } else { 
        System.out.println("Missing."); 
       } 
      } finally { 
       results.close(); 
      } 
     } finally { 
      statement.close(); 
     } 
    } finally { 
     connection.close(); 
    } 
} 

どのような混乱!そしてまだトランザクションを使用していません。はい、ORMを使用してください。彼らは最近、非常に尊敬しています。

1つの文ごとにすべてを行う必要はありません。毎回インスタンシエートドライバを作成する必要はありません。特にイディオムの実行は便利です。

関連する問題