1. Trang chủ
  2. » Công Nghệ Thông Tin

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

12 379 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 567,83 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

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

}

Trang 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

Trang 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

}

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

Trang 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

Trang 6

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

và chọn new connection

Trang 7

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

Chọn next

Trang 8

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

Trang 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" ;

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

Trang 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 = 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

Trang 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

Ngày đăng: 19/05/2017, 23:29

TỪ KHÓA LIÊN QUAN