色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java jdbc mysql 封裝

Java JDBC MySQL 封裝是一種常見的數(shù)據(jù)庫(kù)操作方式,在實(shí)際項(xiàng)目開發(fā)中常常用到。封裝的目的是為了簡(jiǎn)化數(shù)據(jù)庫(kù)操作過程,提高代碼復(fù)用率和可維護(hù)性。

使用 JDBC 時(shí),需要大量的樣板代碼,如加載驅(qū)動(dòng)程序、建立連接、創(chuàng)建語(yǔ)句對(duì)象、執(zhí)行 SQL 語(yǔ)句、關(guān)閉結(jié)果集、關(guān)閉語(yǔ)句對(duì)象、關(guān)閉連接等。如果每次操作數(shù)據(jù)庫(kù)都需要手動(dòng)編寫這些代碼,會(huì)極大地增加開發(fā)工作量。

因此,可以通過封裝的方式來簡(jiǎn)化這些操作。我們可以將連接、語(yǔ)句對(duì)象、結(jié)果集等操作封裝成一個(gè)工具類,以供其他類直接使用。對(duì)于常見的 CRUD 操作,可以再封裝成一個(gè) DAO 層,供業(yè)務(wù)層直接調(diào)用。這樣一來,就可以大大簡(jiǎn)化數(shù)據(jù)庫(kù)操作過程,提高開發(fā)效率。

public class DbUtil {
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/mydb";
private static final String USER = "root";
private static final String PASSWORD = "123456";
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

上述代碼是一個(gè) DbUtil 工具類的示例,用于獲取數(shù)據(jù)庫(kù)連接和關(guān)閉連接、語(yǔ)句對(duì)象、結(jié)果集等資源。通過這個(gè)類,可以大大簡(jiǎn)化數(shù)據(jù)庫(kù)操作中的代碼量。比如,執(zhí)行一個(gè)查詢語(yǔ)句:

Connection conn = null;        PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DbUtil.getConnection();
ps = conn.prepareStatement("select * from user where id = ?");
ps.setInt(1, id);
rs = ps.executeQuery();
while (rs.next()) {
// do something
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DbUtil.close(conn, ps, rs);
}

上述代碼中,連接的獲取和關(guān)閉,語(yǔ)句對(duì)象的創(chuàng)建和關(guān)閉,結(jié)果集的遍歷等操作都使用了封裝好的工具類,將開發(fā)工作量降至最小。