JDBC実戦チュートリアル(二)-JDBC構成とコードの最適化
6150 ワード
JDBC実戦チュートリアル-JDBC構成とコードの最適化
前のコードでは、jdbc構成情報(ユーザー名、パスワード、駆動情報、データベース・サービスに接続するURL)をメソッドに宣言し、次のように変数を割り当てます.
実際には、データベースの接続構成情報をpropertiesファイルに完全に書き込んで、propertiesファイルを参照する方法を提供します.具体的には、次のようにします.
1.srcディレクトリの下にjdbcという名前を作成する.propertiesファイル、jdbc.propertiesファイルは接続データベースの作成に使用するデータベースドライバ、接続URLアドレス、ユーザー名、パスワード、以下の通りです.
2、javaファイルでjdbcを参照する.propertiesファイル:
3、ドライバをロードするこのステップでは、静的コードブロックに抽出して配置することができます.これにより、クラスがロードされたときにドライバをロードすることができます.ドライバドライバをロードするにはgetProperties()メソッドを使用します.以下のようにします.
4、Connection接続操作を取得するには、次のような方法を抽出することもできます.
5、Statementオブジェクトを作成し、SQL文を実行し、結果セットを以下のようにカプセル化する.
6、接続を閉じる操作は以下の通りです.
ソースコードは次のとおりです.
前のコードでは、jdbc構成情報(ユーザー名、パスワード、駆動情報、データベース・サービスに接続するURL)をメソッドに宣言し、次のように変数を割り当てます.
public static void main(String[] args){
String url = "jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=false";
String user = "root";
String password = "root";
Connection con = DriverManager.getConnection(url, user, password);
String sql = "select * from company where name like ?";
// Statement
PreparedStatement st = con.prepareStatement(sql);
// SQL
ResultSet rs = st.executeQuery();
}
実際には、データベースの接続構成情報をpropertiesファイルに完全に書き込んで、propertiesファイルを参照する方法を提供します.具体的には、次のようにします.
1.srcディレクトリの下にjdbcという名前を作成する.propertiesファイル、jdbc.propertiesファイルは接続データベースの作成に使用するデータベースドライバ、接続URLアドレス、ユーザー名、パスワード、以下の通りです.
jdbc.driver = com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=false
user=root
password=root
2、javaファイルでjdbcを参照する.propertiesファイル:
//
public static String getProperties(String key){
Properties prop = new Properties();
try {
prop.load(new FileInputStream("jdbc.properties"));
return prop.getProperty(key);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
3、ドライバをロードするこのステップでは、静的コードブロックに抽出して配置することができます.これにより、クラスがロードされたときにドライバをロードすることができます.ドライバドライバをロードするにはgetProperties()メソッドを使用します.以下のようにします.
//
static {
try {
Class.forName(getProperties("jdbc.driver"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
4、Connection接続操作を取得するには、次のような方法を抽出することもできます.
// Connection
public static Connection getConnection(){
String url = getProperties("url");
String user = getProperties("user");
String password = getProperties("password");
try {
return DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
5、Statementオブジェクトを作成し、SQL文を実行し、結果セットを以下のようにカプセル化する.
// Statement SQL
public static ResultSet doStatement(String sql){
Connection con = getConnection();
try {
Statement stmt = con.createStatement();
return stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// PreparedStatement ,
public static ResultSet doPreparedStatement(String sql){
Connection con = getConnection();
try {
PreparedStatement stmt = con.prepareStatement(sql);
return stmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
6、接続を閉じる操作は以下の通りです.
//
public static void close(Connection con, Statement st, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
ソースコードは次のとおりです.
package com.zhq.jdbc;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCUtil {
public static void main(String[] args) {
String sql = "select * from user";
doStatement(sql);
}
static {
try {
Class.forName(getProperties("jdbc.driver"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
String url = getProperties("url");
String user = getProperties("user");
String password = getProperties("password");
try {
return DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static String getProperties(String key) {
Properties prop = new Properties();
try {
prop.load(new FileInputStream("jdbc.properties"));
return prop.getProperty(key);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static ResultSet doStatement(String sql) {
Connection con = getConnection();
try {
Statement stmt = con.createStatement();
return stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static ResultSet doPreparedStatement(String sql) {
Connection con = getConnection();
try {
PreparedStatement stmt = con.prepareStatement(sql);
return stmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void close(Connection con, Statement st, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}