ݺߣ

ݺߣShare a Scribd company logo
ANHMATTROI 
1 
Lớp kết nối CSDL dùng JDBC trong java 
- Code lớp kết nối 
package csdl; 
import java.sql.Connection; 
import java.sql.Driver; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import javax.swing.JOptionPane; 
/** 
* 
* @author ANHMATTROI 
*/ 
public class KetNoi 
{ 
private Connection ket_noi; 
private String chuoi_ket_noi; 
private Driver driver; 
public KetNoi() 
{ 
ket_noi = null; 
try 
{ 
driver = new <lớp>(); 
DriverManager.registerDriver(driver); 
} 
catch (SQLException ex) 
{ 
ex.printStackTrace(); 
} 
chuoi_ket_noi = "chuỗi kết nối"; 
} 
//mở kết nối 
public boolean Mo() 
{ 
try 
{ 
ket_noi = DriverManager.getConnection(chuoi_ket_noi); 
} 
catch(SQLException ex) 
{ 
ex.printStackTrace(); 
return false; 
} 
return true; 
}
ANHMATTROI 
2 
//hàm trả về một bảng dữ liệu từ câu lệnh truy vấn select ..... 
public ResultSet LayDL(String str) 
{ 
ResultSet bang = null; 
try 
{ 
Statement lenh = this.ket_noi.createStatement(); 
bang = lenh.executeQuery(str); 
} 
catch(SQLException ex) 
{ 
ex.printStackTrace(); 
} 
return bang; 
} 
//cập nhật cơ sở dữ liệu như thêm - xóa - sửa: chạy các lệnh truy vấn 
//update, delete, insert .. 
public boolean CapNhat(String str) 
{ 
try 
{ 
Statement lenh = this.ket_noi.createStatement(); 
lenh.execute(str); 
} 
catch(SQLException ex) 
{ 
ex.printStackTrace(); 
return false; 
} 
return true; 
} 
//đóng kết nối khi thoát ứng dụng 
public void DongKetNoi() 
{ 
if(this.ket_noi != null) 
{ 
try 
{ 
this.ket_noi.close(); 
} 
catch (SQLException ex) 
{ 
ex.printStackTrace(); 
} 
} 
} 
} 
- Lớp gồm có hàm khởi tạo, mở kết nối, hàm lấy dữ liệu, hàm cập nhật và hàm đóng kết nối khi thoát ứng dụng 
+ Khai báo các thư viện
ANHMATTROI 
3 
import java.sql.Connection; 
import java.sql.Driver; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
+ Hàm khởi tạo: đăng kí trình điều khiển cho ứng dụng để kết nối tới CSDL 
public KetNoi() 
{ 
ket_noi = null; 
try 
{ 
<đăng kí driver>; 
} 
catch (SQLException ex) 
{ 
ex.printStackTrace(); 
} 
connection_string = <chuỗi kết nối tới csdl>; 
} 
Dùng phương thức Class.forName(“<gọi gói chứa trình điều khiển>”) hoặc dùng 
Driver driver = new <gói chứ trình điều khiển>(); 
DriverManager.registerDriver(driver); 
+ Hàm mở kết nối: để kết nối tớ csdl bạn có thể dùng các phương thức sau: 
Connection ket_noi; 
ket_noi = DriverManager.getConnection(String url) 
ket_noi = DriverManager.getConnection(String url, Properties prop) 
ket_noi = DriverManager.getConnection(String url, String user, String password) 
public boolean Mo() 
{ 
try 
{ 
ket_noi = DriverManager.getConnection(chuoi_ket_noi); 
} 
catch(SQLException ex) 
{ 
ex.printStackTrace(); 
return false;//lỗi kết nối 
} 
return true;//kết nối thành công 
}
ANHMATTROI 
4 
+ Hàm lấy dữ liệu của kết quả chạy câu lệnh truy vấn sql: tham số truyền vào là một lệnh truy ván sql và yêu cầu trả lại dữ liệu sau câu lệnh truy vấn đó, câu lệnh truy vấn truyền vào là khối lênh select. Ví dụ như: select * from SinhVien và thông tin của các sinh viên được trả về ở dạng bảng 
+ Hàm cập nhật: tham số truyền vào là câu lệnh truy vấn sql, thường là của khối lệnh update, delete, insert, drop, alter, … và kết quả trả về ở dạng boolean để xem câu lệnh truy vấn có được cập nhật thành công hay không. Ví dụ như: delete from SinhVien masv = ‘sv12345’ 
+ Hàm đóng kết nối: ngắt kết nối csdl khi thoát ứng dụng …. 
- Trước khi kết nối tới CSDL bạn phải đăng kí trình điều khiển trong ứng dụng của bạn. 
 Trong T-SQL : 
Hàm khởi tạo 
 Với jdk 1.6, 1.7: 
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
chuoi_ket_noi = "jdbc:odbc:Driver={SQL Server}; " 
+ "Server=<tên server>; Database=<tên cơ sở dữ liệu>;" 
+ UserName=<tên đăng nhập sql>; PassWord=<mật khẩu>"; 
Hoặc dùng: 
driver = new sun.jdbc.odbc.JdbcOdbcDriver(); 
DriverManager.registerDriver(driver);
ANHMATTROI 
5 
 . Với jdk 1.8: bạn tải sqljdbc_.jar, click chuột phải vào project chọn properties, click vào libraries chọn add/jar/folder rồi duyệt đến thư mục chứa file sqljdbc_.jar chọn nó và nhấn OK
ANHMATTROI 
6 
Tiếp theo: click Window -> Services, click phải chuột vào Databases trong tab services và chọn new connection
ANHMATTROI 
7 
Chọn new driver -> add duyệt tìm file sqljdbc.jar 
Chọn next
ANHMATTROI 
8 
Lấy cổng kết nối T-SQL: mở sql server configuaration và chọn như hình dưới
ANHMATTROI 
9 
Tiếp theo next -> next -> finish 
Sau các bước trên ta có được chuỗi kết nối 
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
chuoi_ket_noi = " jdbc:sqlserver://BeBuSQLEXPRESS:1362; 
databaseName=QLSV;UserName=ANHMATTROI;PassWord=anhmattroi";
ANHMATTROI 
10 
Hoặc dùng: 
driver = new com.microsoft.sqlserver.jdbc.SQLServerDriver(); 
DriverManager.registerDriver(driver); 
Hàm hoàn thiện: 
public KetNoi() 
{ 
ket_noi = null; 
try 
{ 
driver = new 
com.microsoft.sqlserver.jdbc.SQLServerDriver(); 
DriverManager.registerDriver(driver); 
} 
catch (SQLException ex) 
{ 
ex.printStackTrace(); 
} 
chuoi_ket_noi = "jdbc:sqlserver://BeBuSQLEXPRESS:1362; 
databaseName=QLSV;UserName=ANHMATTROI; 
PassWord=anhmattroi"; 
} 
Hàm mở kết nối: khi đã đăng kí trình điều khiển ta tiên hành kết nối csdl 
public ResultSet LayDL(String str) 
{ 
ResultSet bang = null; 
try 
{ 
Statement lenh = this.ket_noi.createStatement(); 
bang = lenh.executeQuery(str); 
} 
catch(SQLException ex)
ANHMATTROI 
11 
{ 
ex.printStackTrace(); 
} 
return bang; 
} 
- Sau khi mở kết nối ta thực hiên các thao tác thêm – sửa – xóa trên csdl bằng hàm LayDL(String sql) và hàm CapNhat(String sql). 
+ Duyệt dữ liệu dạng bảng trả về từ hàm LayDL(String sql) và hiện thị lên jtable 
KetNoi kn = new KetNoi(); 
kn.Mo(); 
ResultSet bang = kn.LayDL("select * from SinhVien"); 
boolean kq = bang.next(); 
String[] hang; 
DefaultTableModel model = (DefaultTableModel)jtable.getModel(); 
int i = 0; 
while(kq) 
{ 
hang = new String[5]; 
hang[0] = bang.getString(1); 
hang[1] = bang.getString(2); 
hang[2] = bang.getString(3); 
hang[3] = bang.getString(4); 
hang[4] = bang.getString(5); 
i++; 
model.addRow(hang); 
kq = bang.next(); 
} 
bang.close(); 
- Một số hàm thường dùng khi làm việc với đối tượng JTable trong java 
JTable jtable; 
//chèn cột 
String[] ds_cot = new String[3] = {“Mã sinh viên”, “Tên”, “Quê quán”}; 
TableModel table_model = new DefaultTableModel(null, ds_cot); 
jtable.setModel(table_model); 
//toàn bộ số hàng hiện có 
jtabe.getRowCount(); 
//hiện thị đường kẻ ngang dọc của bảng 
jtabe.setShowGrid(true/false); 
//thay đổi ô chọn trong bảng
ANHMATTROI 
12 
jtabe.changeSelection(<chỉ số hàng>, <chỉ số cột>, false, false); 
//nhận model dùng để thêm hàng mới vào jtable 
jtabe.getModel() 
//nhận chỉ số hàng khi click chuột vào jtable 
int i = jtabe.getSelectedRow(); 
//thêm một hàng vào jtable 
DefaultTableModel model = (DefaultTableModel) jtabe.getModel(); 
String[] hang = new String[3]; 
hang[0] = “sv12345”; 
hang[1] = “Sinh Viên”; 
hang[2] = “Lớp tin5a”; 
model.addRow(hang); 
//xóa một hàng tại chỉ số i với -1 < i < jtabe.getRowCount(); 
DefaultTableModel model = (DefaultTableModel) jtabe.getModel(); 
model.removeRow(i); 
//lấy giá trị của mỗi ô trong jtable 
String giatri; 
if(jtabe.getValueAt(<chỉ số hàng>, <chỉ số cột>) != null) 
giatri = jtabe.getValueAt(<chỉ số hàng>, <chỉ số cột>) 
//gán giá trị lên một ô của bảng jtable 
String giatri = “hi”; 
jtabe.setValueAt(giatri, <chỉ số hàng>, <chỉ số cột>); 
Link tải project ví dụ về thêm sửa xóa csdl T-SQL dùng JDBC trong java: tạo mộ csdl QLSV gồm có một bảng SinhVien chứa các cột: MaSV, HoTen, NgaySinh, GioiTinh, DiaChi 
http://www.mediafire.com/download/qv9d29we2bn8jfe/CSDL.rar

More Related Content

Lớp kết nối csdl dùng jdbc trong java

  • 1. ANHMATTROI 1 Lớp kết nối CSDL dùng JDBC trong java - Code lớp kết nối package csdl; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane; /** * * @author ANHMATTROI */ public class KetNoi { private Connection ket_noi; private String chuoi_ket_noi; private Driver driver; public KetNoi() { ket_noi = null; try { driver = new <lớp>(); DriverManager.registerDriver(driver); } catch (SQLException ex) { ex.printStackTrace(); } chuoi_ket_noi = "chuỗi kết nối"; } //mở kết nối public boolean Mo() { try { ket_noi = DriverManager.getConnection(chuoi_ket_noi); } catch(SQLException ex) { ex.printStackTrace(); return false; } return true; }
  • 2. ANHMATTROI 2 //hàm trả về một bảng dữ liệu từ câu lệnh truy vấn select ..... public ResultSet LayDL(String str) { ResultSet bang = null; try { Statement lenh = this.ket_noi.createStatement(); bang = lenh.executeQuery(str); } catch(SQLException ex) { ex.printStackTrace(); } return bang; } //cập nhật cơ sở dữ liệu như thêm - xóa - sửa: chạy các lệnh truy vấn //update, delete, insert .. public boolean CapNhat(String str) { try { Statement lenh = this.ket_noi.createStatement(); lenh.execute(str); } catch(SQLException ex) { ex.printStackTrace(); return false; } return true; } //đóng kết nối khi thoát ứng dụng public void DongKetNoi() { if(this.ket_noi != null) { try { this.ket_noi.close(); } catch (SQLException ex) { ex.printStackTrace(); } } } } - Lớp gồm có hàm khởi tạo, mở kết nối, hàm lấy dữ liệu, hàm cập nhật và hàm đóng kết nối khi thoát ứng dụng + Khai báo các thư viện
  • 3. ANHMATTROI 3 import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; + Hàm khởi tạo: đăng kí trình điều khiển cho ứng dụng để kết nối tới CSDL public KetNoi() { ket_noi = null; try { <đăng kí driver>; } catch (SQLException ex) { ex.printStackTrace(); } connection_string = <chuỗi kết nối tới csdl>; } Dùng phương thức Class.forName(“<gọi gói chứa trình điều khiển>”) hoặc dùng Driver driver = new <gói chứ trình điều khiển>(); DriverManager.registerDriver(driver); + Hàm mở kết nối: để kết nối tớ csdl bạn có thể dùng các phương thức sau: Connection ket_noi; ket_noi = DriverManager.getConnection(String url) ket_noi = DriverManager.getConnection(String url, Properties prop) ket_noi = DriverManager.getConnection(String url, String user, String password) public boolean Mo() { try { ket_noi = DriverManager.getConnection(chuoi_ket_noi); } catch(SQLException ex) { ex.printStackTrace(); return false;//lỗi kết nối } return true;//kết nối thành công }
  • 4. ANHMATTROI 4 + Hàm lấy dữ liệu của kết quả chạy câu lệnh truy vấn sql: tham số truyền vào là một lệnh truy ván sql và yêu cầu trả lại dữ liệu sau câu lệnh truy vấn đó, câu lệnh truy vấn truyền vào là khối lênh select. Ví dụ như: select * from SinhVien và thông tin của các sinh viên được trả về ở dạng bảng + Hàm cập nhật: tham số truyền vào là câu lệnh truy vấn sql, thường là của khối lệnh update, delete, insert, drop, alter, … và kết quả trả về ở dạng boolean để xem câu lệnh truy vấn có được cập nhật thành công hay không. Ví dụ như: delete from SinhVien masv = ‘sv12345’ + Hàm đóng kết nối: ngắt kết nối csdl khi thoát ứng dụng …. - Trước khi kết nối tới CSDL bạn phải đăng kí trình điều khiển trong ứng dụng của bạn.  Trong T-SQL : Hàm khởi tạo  Với jdk 1.6, 1.7: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); chuoi_ket_noi = "jdbc:odbc:Driver={SQL Server}; " + "Server=<tên server>; Database=<tên cơ sở dữ liệu>;" + UserName=<tên đăng nhập sql>; PassWord=<mật khẩu>"; Hoặc dùng: driver = new sun.jdbc.odbc.JdbcOdbcDriver(); DriverManager.registerDriver(driver);
  • 5. ANHMATTROI 5  . Với jdk 1.8: bạn tải sqljdbc_.jar, click chuột phải vào project chọn properties, click vào libraries chọn add/jar/folder rồi duyệt đến thư mục chứa file sqljdbc_.jar chọn nó và nhấn OK
  • 6. ANHMATTROI 6 Tiếp theo: click Window -> Services, click phải chuột vào Databases trong tab services và chọn new connection
  • 7. ANHMATTROI 7 Chọn new driver -> add duyệt tìm file sqljdbc.jar Chọn next
  • 8. ANHMATTROI 8 Lấy cổng kết nối T-SQL: mở sql server configuaration và chọn như hình dưới
  • 9. ANHMATTROI 9 Tiếp theo next -> next -> finish Sau các bước trên ta có được chuỗi kết nối Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); chuoi_ket_noi = " jdbc:sqlserver://BeBuSQLEXPRESS:1362; databaseName=QLSV;UserName=ANHMATTROI;PassWord=anhmattroi";
  • 10. ANHMATTROI 10 Hoặc dùng: driver = new com.microsoft.sqlserver.jdbc.SQLServerDriver(); DriverManager.registerDriver(driver); Hàm hoàn thiện: public KetNoi() { ket_noi = null; try { driver = new com.microsoft.sqlserver.jdbc.SQLServerDriver(); DriverManager.registerDriver(driver); } catch (SQLException ex) { ex.printStackTrace(); } chuoi_ket_noi = "jdbc:sqlserver://BeBuSQLEXPRESS:1362; databaseName=QLSV;UserName=ANHMATTROI; PassWord=anhmattroi"; } Hàm mở kết nối: khi đã đăng kí trình điều khiển ta tiên hành kết nối csdl public ResultSet LayDL(String str) { ResultSet bang = null; try { Statement lenh = this.ket_noi.createStatement(); bang = lenh.executeQuery(str); } catch(SQLException ex)
  • 11. ANHMATTROI 11 { ex.printStackTrace(); } return bang; } - Sau khi mở kết nối ta thực hiên các thao tác thêm – sửa – xóa trên csdl bằng hàm LayDL(String sql) và hàm CapNhat(String sql). + Duyệt dữ liệu dạng bảng trả về từ hàm LayDL(String sql) và hiện thị lên jtable KetNoi kn = new KetNoi(); kn.Mo(); ResultSet bang = kn.LayDL("select * from SinhVien"); boolean kq = bang.next(); String[] hang; DefaultTableModel model = (DefaultTableModel)jtable.getModel(); int i = 0; while(kq) { hang = new String[5]; hang[0] = bang.getString(1); hang[1] = bang.getString(2); hang[2] = bang.getString(3); hang[3] = bang.getString(4); hang[4] = bang.getString(5); i++; model.addRow(hang); kq = bang.next(); } bang.close(); - Một số hàm thường dùng khi làm việc với đối tượng JTable trong java JTable jtable; //chèn cột String[] ds_cot = new String[3] = {“Mã sinh viên”, “Tên”, “Quê quán”}; TableModel table_model = new DefaultTableModel(null, ds_cot); jtable.setModel(table_model); //toàn bộ số hàng hiện có jtabe.getRowCount(); //hiện thị đường kẻ ngang dọc của bảng jtabe.setShowGrid(true/false); //thay đổi ô chọn trong bảng
  • 12. ANHMATTROI 12 jtabe.changeSelection(<chỉ số hàng>, <chỉ số cột>, false, false); //nhận model dùng để thêm hàng mới vào jtable jtabe.getModel() //nhận chỉ số hàng khi click chuột vào jtable int i = jtabe.getSelectedRow(); //thêm một hàng vào jtable DefaultTableModel model = (DefaultTableModel) jtabe.getModel(); String[] hang = new String[3]; hang[0] = “sv12345”; hang[1] = “Sinh Viên”; hang[2] = “Lớp tin5a”; model.addRow(hang); //xóa một hàng tại chỉ số i với -1 < i < jtabe.getRowCount(); DefaultTableModel model = (DefaultTableModel) jtabe.getModel(); model.removeRow(i); //lấy giá trị của mỗi ô trong jtable String giatri; if(jtabe.getValueAt(<chỉ số hàng>, <chỉ số cột>) != null) giatri = jtabe.getValueAt(<chỉ số hàng>, <chỉ số cột>) //gán giá trị lên một ô của bảng jtable String giatri = “hi”; jtabe.setValueAt(giatri, <chỉ số hàng>, <chỉ số cột>); Link tải project ví dụ về thêm sửa xóa csdl T-SQL dùng JDBC trong java: tạo mộ csdl QLSV gồm có một bảng SinhVien chứa các cột: MaSV, HoTen, NgaySinh, GioiTinh, DiaChi http://www.mediafire.com/download/qv9d29we2bn8jfe/CSDL.rar