接続mysqlとjdbcを設定する最良の方法/テンプレートは何ですか?
質問
mysqlのjdbcとの接続を設定する最良の方法は何ですか? そして、簡単なステートメントを実行します。どうやってするか? ありがとう。
解決
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));
}
ステートメントと接続を閉じる:
rs.close();
stmt.close();
conn.close();
ドライバーがインストールされているか、CLASSPATHにインストールされていることを確認する必要があります。
他のヒント
これは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を使用します。最近はとても尊敬しています。
すべてのステートメントに対してすべてを行う必要はありません。毎回インスタンス化ドライバーを作成する必要はありません。特に、イディオムアラウンドイディオムは便利です。
ケースによって異なります。
スタンドアロンアプリケーションからクエリを実行する必要がある場合は、次のような単一の接続を使用する必要があります。
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アプリケーション)を開発している場合は、DataSourceを使用します。データソースの設定方法については、DBおよびWebサーバーのマニュアルを参照してください。 DataSourceを使用すると、接続プールを使用できます。パフォーマンスを向上させる必要があります。
DataSourceの設定は難しいプロセスではありません。
JDBC接続を作成するためのsunのドキュメントは次のとおりです。そこから簡単に get Statementオブジェクトへのアクセスと簡単なSQLの実行。
実稼働レベルのシステムでは、おそらく接続プール。
Spring FrameworkのJDBC抽象化フレームワークを使用する-必要なことは、コンテキストXMLファイルを作成し、JDBCテンプレートクラスを使用することだけです。ほんの数行のXML + Javaコードで作業を開始できます。利点は、コンパイルされたJavaから接続の詳細を除外することです。見る: http://www.springbyexample.org/examples/simple-spring- jdbc-template.html