Tải bản đầy đủ (.pdf) (12 trang)

Lập trình kết nói java với sqlserver bằng JDBC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (567.83 KB, 12 trang )

ANHMATTROI

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;
}

1


ANHMATTROI

//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
2


ANHMATTROI
import
import
import
import
import
import

java.sql.Connection;
java.sql.Driver;
java.sql.DriverManager;

java.sql.ResultSet;
java.sql.SQLException;
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
}

3


ANHMATTROI

+ 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);

4


ANHMATTROI

 . 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

5


ANHMATTROI

Tiếp theo: click Window -> Services, click phải chuột vào Databases trong tab services
và chọn new connection

6


ANHMATTROI

Chọn new driver -> add duyệt tìm file sqljdbc.jar


Chọn next

7


ANHMATTROI

Lấy cổng kết nối T-SQL: mở sql server configuaration và chọn như hình dưới

8


ANHMATTROI

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://BeBu\\SQLEXPRESS:1362;
databaseName=QLSV;UserName=ANHMATTROI;PassWord=anhmattroi";

9


ANHMATTROI

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://BeBu\\SQLEXPRESS: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)


10


ANHMATTROI
{
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
11


ANHMATTROI

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
/>
12



×