Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để chúng tôi đóng tài nguyên tự động trong Java?

Bạn có thể tự động đóng tài nguyên bằng cách sử dụng thử với tài nguyên trong JDBC.

Cú pháp

 try (Khai báo tài nguyên) {body .....} catch (SQLException e) {e.printStackTrace ();} 

Nó là một câu lệnh try với một hoặc nhiều tài nguyên được khai báo lúc try. trong đó tài nguyên là một đối tượng sẽ được đóng lại khi nó không còn được yêu cầu nữa.

Bạn có thể khai báo nhiều tài nguyên trong tài nguyên này và tất cả những tài nguyên đó sẽ tự động được đóng ở cuối câu lệnh.

Các đối tượng / tài nguyên mà chúng tôi khai báo trong này phải triển khai java.lang.AutoClosable hoặc java.io.Closable, giao diện hoặc mở rộng java.lang.AutoClosable lớp học.

Trong JDBC, chúng ta có thể sử dụng java.sql.CallableStatement, Connection, PreparedStatement, Statement, ResultSet và RowSet trong thử với tài nguyên tuyên bố.

Ví dụ

Hãy để chúng tôi tạo một bảng với tên MyPlayers trong cơ sở dữ liệu MySQL bằng cách sử dụng câu lệnh CREATE như hình dưới đây -

 TẠO BẢNG MyPlayers (ID INT, First_Name VARCHAR (255), Last_Name VARCHAR (255), Date_Of_Birth date, Place_Of_Birth VARCHAR (255), Country VARCHAR (255), PRIMARY KEY (ID)); 

Bây giờ, chúng ta sẽ chèn 7 bản ghi trong bảng MyPlayers bằng cách sử dụng câu lệnh INSERT -

 chèn vào các giá trị MyPlayers (1, 'Shikhar', 'Dhawan', DATE ('1981-12-05'), 'Delhi', 'India'); chèn vào giá trị MyPlayers (2, 'Jonathan', ' Trott ', DATE (' 1981-04-22 '),' CapeTown ',' SouthAfrica '); chèn vào các giá trị MyPlayers (3,' Kumara ',' Sangakkara ', DATE (' 1977-10-27 '),' Matale ',' Srilanka '); chèn vào các giá trị MyPlayers (4,' Virat ',' Kohli ', DATE (' 1988-11-05 '),' Delhi ',' India '); chèn vào các giá trị MyPlayers (5, 'Rohit', 'Sharma', DATE ('1987-04-30'), 'Nagpur', 'India'); chèn vào các giá trị MyPlayers (6, 'Ravindra', 'Jadeja', DATE ('1988-12-) 06 '),' Nagpur ',' India '); chèn vào các giá trị MyPlayers (7,' James ',' Anderson ', DATE (' 1982-06-30 '),' Burnley ',' England ');  

Chương trình JDBC sau đây trình bày cách sử dụng câu lệnh try-with-resources trong JDBC -

 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class TryWithResources_Example {public static void main (String args [ ]) {// Bắt kết nối String mysqlUrl ="jdbc:mysql:// localhost / mydatabase"; System.out.println ("Kết nối được thiết lập ......"); // Đăng ký Driver try (Connection con =DriverManager.getConnection (mysqlUrl, "root", "password"); Statement stmt =con.createStatement ();) {try (ResultSet rs =stmt.executeQuery ("select * from MyPlayers ");) {// Lấy dữ liệu while (rs.next ()) {System.out.print (rs.getInt (" ID ") +", "); System.out.print (rs.getString ("First_Name") + ","); System.out.print (rs.getString ("Tên_ Cuối") + ","); System.out.print (rs.getDate ("Date_Of_Birth") + ","); System.out.print (rs.getString ("Place_Of_Birth") + ","); System.out.print (rs.getString ("Quốc gia")); System.out.println (); }} catch (SQLException e) {e.printStackTrace (); }} catch (SQLException e) {e.printStackTrace (); }}} 

Đầu ra

 Kết nối được thiết lập ...... 1, Shikhar, Dhawan, 1981-12-05, Delhi, India2, Jonathan, Trott, 1981-04-22, CapeTown, SouthAfrica3, Kumara, Sangakkara, 1977-10-27 , Matale, Srilanka4, Virat, Kohli, 1988-11-05, Mumbai, India5, Rohit, Sharma, 1987-04-30, Nagpur, India6, Ravindra, Jadeja, 1988-12-06, Nagpur, India7, James, Anderson , 1982-06-30, Burnely, England8, Ryan, McLaren, 1983-02-09, Kumberly, null