12
ANHMATTROI 1 L p kết ni CSDL dùng JDBC trong java - Code lp 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; }

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

Embed Size (px)

DESCRIPTION

Kết nối csdl t-sql dùng jdbc trong java

Citation preview

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

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;

}

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

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

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

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

}

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

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

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

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

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

ANHMATTROI

6

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

và chọn new connection

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

ANHMATTROI

7

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

Chọn next

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

ANHMATTROI

8

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

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

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

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

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://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)

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

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

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

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