Java วิธีใช้ try with resources ใน Java 7 Code สวยขึ้นหมดห่วงเรื่อง Close
Java วิธีใช้ try with resources ใน Java 7
Code สวยขึ้นหมดห่วงเรื่อง Close Connection
ก่อนหน้านั้นไม่ว่าเราจะเขียนโปรแกรม อ่านไฟล์ หรือ ต่อ Database
จะต้องมีการย้ำคิดถึงเรื่อง การคืน resource การ close file , close connection
แถมต้องพวกด้วย Try , Catch block ที่ครอบแล้วครอบอีกทำให้ Code เราอ่านยากมากๆ
วันนี้จะมาแนะนำ Feature ของ Java 7 ที่ทำให้เราสามารถเขียน Try with resource ได้
ตามตัวอย่างนี้เลย
//แบบเก่า
public void Test() {
String sql = " Select * from test ";
try {
Connection con = DriverManager.getConnection(myConnectionURL);
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
// logic with RS
}
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
จะเห็นได้ว่ายังต้องมีการ Close resource ต่างๆ ถ้าหากทำไม่ดีพอ
อาจเกิดปัญหา Connection เต็มได้นะ
//แบบใหม่
public void Test() {
try (Connection con = DriverManager.getConnection(myConnectionURL);
PreparedStatement ps = createPreparedStatement(con);
ResultSet rs = ps.executeQuery()) {
// logic with RS
} catch (SQLException e) {
e.printStackTrace();
}
}
private PreparedStatement createPreparedStatement(Connection con) throws SQLException {
String sql = " Select * from test ";
PreparedStatement ps = con.prepareStatement(sql);
return ps;
}
จะเห็นได้ว่า Code สวยขึ้นเยอะ
แถมไม่ต้องกังวลเรื่องการ Close Connection ด้วยนะ