• Thứ Tư, 22/06/2005 14:18 (GMT+7)

    Câu hỏi :
    Xin hỏi, làm thế nào liên kết CSDL SQL vào ứng dụng Java? Trong ứng dụng có sử dụng JTextField, JComboBox & JTable, tôi muốn dữ liệu Table của SQL được liên kết với những đối tượng trên thì làm sao?

    Trả lời :
    Chương trình Java (hay chương trình bằng các ngôn ngữ khác) có thể truy xuất database thông qua giao tiếp lập trình ODBC. Trong Java, giao tiếp ODBC được nâng cấp thành JDBC và được hiện thực trong các class thuộc package java.sql. Ý tưởng chung là tạo đối tượng cầu nối (connection) đến database cần truy xuất, tạo 1 đối tượng “Statement” kết hợp với cầu nối để nhờ nó thực hiện câu truy vấn SQL miêu tả tập các record cần truy xuất thật sự rồi duyệt từng record tìm được để xử lý theo yêu cầu. Đoạn chương trình Java sau demo cho ý tưởng trên, sau khi đọc hiểu, bạn có thể hiệu chỉnh một số chi tiết để truy xuất database theo yêu cầu riêng của mình.

     //định nghĩa biến miêu tả DSN của database cần truy xuất

     String conStr = “jdbc:odbc:DSN_Name”;

     //định nghĩa biến connection

     Connection con;

     // định nghĩa biến chứa lệnh SQL

     String newSQL = “Select * from GroupList”;

     try {

     Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

     //1. Tạo connection miêu tả database cần truy xuất

     con = DriverManager.getConnection(conStr,””,””);

     //2. Tạo đối tượng Statement kết hợp với connection

     java.sql.Statement stmt = con.createStatement();

     //3. Tạo đối tượng Recordset chứa kết quả của lệnh SQL

     ResultSet rs =stmt.executeQuery(newSQL);

     //4. Duyệt recordset để xử lý từng record

     int i = 0;

     if (rs != null) while (rs.next()){

     //xử lý record hiện hành

     i++;

     }

     //5. Đóng các đối tượng đã tạo ra

     rs.close(); stmt.close(); con.close();

     } catch(Exception e){

     System.out.println(“Error : “+e);

     }

     Lưu ý rằng đoạn code trên truy xuất database thông qua DSN (data source name) nhờ đó độc lập với công nghệ quản lý database và vị trí vật lý của file database. Nó sẽ chạy tốt với database dùng bất kỳ công nghệ quản lý nào (Foxpro, Excel, Access, SQL Server, Oracle Server,...)
    Chuyên mục: Cơ sở dữ liệu