Networks Business Online Việt Nam & International VH2

Java với lập trình cơ sở dữ liệu – Tài liệu text

Đăng ngày 07 November, 2022 bởi admin

Java với lập trình cơ sở dữ liệu

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 (272.98 KB, 7 trang )

Java với lập trình cơ sở dữ liệu
Hầu hết các chương trình máy tính hiện này đếu ít nhiều liên quan đến việc
truy xuất thông tin trong các cơ sở dữ liệu. Chính vì thế nên các thao tác hỗ
trợ lập trình cơ sở dữ liệu là chức năng không thể thiếu của các ngôn ngữ lập
trình hiện đại, trong đó có Java. JDBC API là thư viện chứa các lớp và giao
diện hỗ trợ lập trình viên Java kết nối và truy cập đến các hệ cơ sở dữ liệu.
JDBC tương tự như ODBC do Microsoft xây dựng. Theo kiến trúc này các
thao tác liên quan đến cơ sở dữ liệu trong chương trình được thực hiện thông
qua các JDBC API.
Sau đó các JDBC API sẽ truyền các yêu cầu của chương trình đến bộ quản lý
trình điều khiển JDBC, là bộ phận có nhiệm vụ lựa chọn trình điều khiển
thích hợp để có thể làm việc với cơ sở dữ liệu cụ thể mà chương trình muốn
kết nối.
Đây là mô hình thao tác với cơ sơ dữ liệu
Java với lập trình cơ sở dữ liệu phần 2
JDBC Driver
Để có thể tiến hành truy cập đến các hệ quản trị cơ sở dữ liệu sử dụng kỹ
thuật JDBC, chúng ta cần phải có trình điều khiển JDBC của hệ quản trị
CSDL mà chúng ta đang sử dụng. Trình điều khiển JDBC là đoạn chương
trình, do chính nhà xây dựng hệ quản trị CSDL hoặc do nhà cung ứng thứ ba
cung cấp, có khả năng yêu cầu hệ quản trị CSDL cụ thể thực hiện các câu
lệnh SQL.
Các trình điều khiển JDBC được phân làm 04 loại khác nhau.
1. Bridge Driver. Trình điều khiển loại này kết nối với các hệ CSDL
thông qua cầu nối ODBC
2. Native API Driver. Trình điều khiển loại này sẽ chuyển các lời gọi của
JDBC API sang thư viện hàm (API) tương ứng với từng hệ CSDL cụ thể.
3. JDBC-Net Driver. Trình điều khiển loại này sẽ chuyển các lời gọi
JDBC API sang một dạng chuẩn độc lập với các hệ CSDL, và sau được
chuyển sang lời gọi của hệ CSDL cụ thể bỡi 1 chương trình trung gian.
4. Native Protocol Driver.Trình điều khiển loại này chuyển các lời gọi

JDBC API sang mã lệnh của hệ CSDL cụ thể. Đây là các trình điều
khiển thuần Java, có nghĩa là không cần phải có mã lệnh của hệ CSDL
cụ thể khi thi hành chương trình.
JDBC URL
Để có thể kết nối với CSDL, chúng ta cần xác định nguồn dữ
liệu cùng với các thông số liên quan dưới dạng 1 URL như sau:
jdbc:subprotocol:dsn:others
Trong đó:
• subprotocol: được dùng để xác định trình điều khiển để kết nối với
CSDL.
• dsn: địa chỉ CSDL. Cú pháp của phụ thuộc vào từng trình điều khiển cụ
thể.
• others: các tham số khác
Ví dụ:
• jdbc:odbc:dbname là URL để kết nối với CSDL tên dbname sử dụng
cầu nối ODBC.
• jdbc:microsoft:sqlserver://hostname:1433 là URL để kết nối với CSDL
Microsoft SQL Server.Trong đó hostname là tên máy cài SQL Server.
Java với lập trình cơ sở dữ liệu phần 3
Kết nối với CSDL bằng JDBC
Việc kết nối với CSDL bằng JDBC được thực hiện qua hai bước: đăng ký trình điều
khiển JDBC; tiếp theo thực thi phương thức getConnection() của lớp DriverManager.
Đăng ký trình điều khiển
Trình điều khiển JDBC được nạp khi mã bytecode của nó được nạp vào JVM. Một
cách đơn giản để thực hiện công việc này là thực thi phương thức
Class.forName(“JDBC Driver”).
Ví dụ: để nạp trình điều khiển sử dụng cầu nối ODBC do Sun cung cấp, chúng ta sử
dụng câu lệnh sau
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”).
Thực hiện kết nối

Sau khi đã nạp trình điều khiển JDBC, việc kết nối với CSDL được thực hiện với một
trong các phương thức sau trong lớp DriverManager:
1. public static Connection getConnection(String url) throws SQLException: thực
hiện kết nối với CSDL được yêu cầu. Bộ quản lý trình điều khiển sẽ tự động
lựa chọn trình điều khiển phù hợp trong số các trình điều khiển đã được nạp.
2. public static Connection getConnection(String url, String user, String pass)
throws SQLException: tiến hành kết nối tới CSDL với tài khoản user và mật
mã pass.
3. public static Connection getConnection(String url, Properties info) throws
SQLException: tương tự hai phương thức trên ngoài ra cung cấp thêm các
thông tin qui định thuộc tính kết nối thông qua đối tượng của lớp Properties.
Phần sau chúng ta sẽ thử một ứng dụng với database
Java với lập trình cơ sở dữ liệu phần 4
Trong phần này chúng ta sẽ thử kết nối với một cơ sở dữ liệu Access
Bạn có thể vào đây tham khảo Access
Tuy nhiên chúng ta sẽ sử dụng cơ sở dữ liệu mẫu thường có sẵn trong bộ Microsoft
Office.
Bạn hãy mở Microsoft Access lên. Sau đó click vào menu Help. Click tiếp vào
Sample Databases
Tiếp tục chọn Northwind Sample Database. Đây là “đồ cổ” có từ thời Access 2000.
Nhưng đâu có hề hấn gì, ta vẫn học được nhiều điều từ những đồ cổ như vậy.
Nếu Northwind mở ra thì OK, bạn có thể tiếp tục. Nếu không bạn chỉ việc đưa CD
cài đặt Microsoft Office vào để cài thêm thôi. Ngay cả khi không có CD cài đặt, bạn
cũng chỉ cần vào Google tìm là có ngay.
Bây giờ chúng ta sẽ tạo Data Source Name cho CSDL bằng cách vào Control
Panel và chọn ODBC Data Source.
Nếu bạn dùng Windows Vista, bạn cần vào Administrative Tools trong Control
Panel, sau đó chọn Data Source (ODBC)
Khi đó cửa sổ ODBC Data Source Administrator sẽ mở ra.
Tiếp theo nhấn vào nút Add, bạn sẽ thấy hiển thị danh sách các trình điều khiển

CSDL hiện có.
Bạn chọn Microsoft Access Driver(*.mdb) và nhấn Finish. Cửa sổ cấu hình cho tập
tin Access sẽ xuất hiện và nhập NorthwindDSN vào ô Data Source Name
Bạn nhấn nút Select và chọn tập tin CSDL cần tạo data source name. Sau đó nhấn
OK để kết thúc. Tập tin Northwind.mdb thông thường nằm tại thư mục:
C:\Program Files\Microsoft Office\OFFICE11\SAMPLES
Sau khi đã hoàn tất công việc tạo DSN cho tập tin Northwind.mdb, bạn vào đây
tham khảo code để tiến hành kết nối với tập tin Northwind.mdb.
Mở Eclipse, tạo một class mới và đặt tên là TestConnection.
Sau khi copy code, save lại và chạy thử, bạn sẽ thấy kết quả
Loading the driver
Establishing connection
Connect to C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind
successfully!
Ta đã kết nối thành công vào CSDL Northwind
Java với lập trình cơ sở dữ liệu phần 5
Trong quá trình thao tác với CSDL, chúng ta sẽ gặp phải vấn đề chuyển đổi giữa
kiểu dữ liệu trong CSDL sang kiểu dữ liệu Java hỗ trợ và ngược lai. Việc chuyển đổi
này được thực hiện như trong 2 bảng sau.
Bảng chuyển đổi từ kiểu dữ liệu SQL sang Java
Bảng chuyển đổi từ kiểu dữ liệu Java sang SQL
java.sql.Statement
Statement là một trong 3 lớp JDBC cơ bản dùng để thể hiện một câu lệnh SQL. Mọi
thao tác trên CSDL được thực hiện thông qua 3 phương thức của lớp Statement.
Phương thức executeQuery() nhận vào 1 tham số là chuỗi nội dung câu lện SQL và
trả về 1 đối tượng kiểu ResultSet. Phương thức này được sử dụng trong các trường
hợp câu lệnh SQL có trả về các kết quả trong CSDL.
Phương thức executeUpdate() cũng nhận vào 1 tham số là chuỗi nội dung câu lệnh
SQL. Tuy nhiên phương thức này chỉ sử dụng được đối với các cây lệnh cập nhật nội
dung CSDL. Kết quả trả về là số dòng bị tác động bỡi câu lệnh SQL.

Phương thức execute() là trường hợp tổng quát của 2 phương thức trên. Phương
thức nhận vào chuỗi nội dung câu lệnh SQL. Câu lệnh SQL có thể là câu lệnh truy
vấn hoặc cập nhật. Nếu kết quả của câu lệnh là các dòng trong CSDL thì phương
thức trả về giá trị true, ngược lại trả về giá trị false. Trong trường hợp giá trị true,
sau đó chúng ta có thể dùng phương thức getResultSet() để lấy các dòng kết quả
trả về.
java.sql.ResultSet
Đối tượng resultset là các dòng dữ liệu trả về của câu lệnh truy vấn CSDL. Lớp này
cung cấp các phương thức để rút trích các cột trong từng dòng kết quả trả về. Tất
cả các phương thức này đều có dạng:
type getType(int | String)
Trong đó tham số có thể là số thứ tự của cột hoặc tên cột cần lấy nội dung.
Tại 1 thời điểm chúng ta chỉ có thể thao tác trên 1 dòng của resultset. Để thao tác
trên dòng tiếp theo chúng ta sử dụng phương thức next(). Phương thức trả về giá
trị true trong trường hợp có dòng tiếp theo, ngược lại trả về giá trị false.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class TestConnection{
public static void main(String args[]) {
Connection connection = null;
try { // load driver
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
System.out.println(“Loading the driver “);
}
catch( Exception e ) { //problem load driver,class not exist
e.printStackTrace( );
return;
}
try {

String dbURL = “jdbc:odbc:NorthwindDSN”;
System.out.println(“Establishing connection “);
connection =
DriverManager.getConnection(dbURL,””,””);
System.out.println(“Connect to ” + connection.getCatalog() + ” successfully!”);
// Do whatever queries or updates you want here!!!
}
catch( SQLException e ) {
e.printStackTrace( );
}
finally {
if( connection != null ) {
try { connection.close( ); }
catch( SQLException e ) {
e.printStackTrace( );
}
}
}
}
}
JDBC API sang mã lệnh của hệ CSDL đơn cử. Đây là những trình điềukhiển thuần Java, có nghĩa là không cần phải có mã lệnh của hệ CSDLcụ thể khi thi hành chương trình. JDBC URLĐể hoàn toàn có thể liên kết với CSDL, tất cả chúng ta cần xác lập nguồn dữliệu cùng với những thông số kỹ thuật tương quan dưới dạng 1 URL như sau : jdbc : subprotocol : dsn : othersTrong đó : • subprotocol : được dùng để xác lập trình điều khiển và tinh chỉnh để liên kết vớiCSDL. • dsn : địa chỉ CSDL. Cú pháp của phụ thuộc vào vào từng trình điều khiển và tinh chỉnh cụthể. • others : những tham số khácVí dụ : • jdbc : odbc : dbname là URL để liên kết với CSDL tên dbname sử dụngcầu nối ODBC. • jdbc : microsoft : sqlserver : / / hostname : 1433 là URL để liên kết với CSDLMicrosoft SQL Server. Trong đó hostname là tên máy cài SQL Server. Java với lập trình cơ sở dữ liệu phần 3K ết nối với CSDL bằng JDBCViệc liên kết với CSDL bằng JDBC được thực thi qua hai bước : ĐK trình điềukhiển JDBC ; tiếp theo thực thi phương pháp getConnection ( ) của lớp DriverManager. Đăng ký trình điều khiểnTrình điều khiển và tinh chỉnh JDBC được nạp khi mã bytecode của nó được nạp vào JVM. Mộtcách đơn thuần để thực thi việc làm này là thực thi phương thứcClass. forName ( ” JDBC Driver ” ). Ví dụ : để nạp trình tinh chỉnh và điều khiển sử dụng cầu nối ODBC do Sun phân phối, tất cả chúng ta sửdụng câu lệnh sauClass. forName ( ” sun.jdbc.odbc. JdbcOdbcDriver ” ). Thực hiện kết nốiSau khi đã nạp trình điều khiển và tinh chỉnh JDBC, việc liên kết với CSDL được thực thi với mộttrong những phương pháp sau trong lớp DriverManager : 1. public static Connection getConnection ( String url ) throws SQLException : thựchiện liên kết với CSDL được nhu yếu. Bộ quản trị trình tinh chỉnh và điều khiển sẽ tự độnglựa chọn trình điều khiển và tinh chỉnh tương thích trong số những trình tinh chỉnh và điều khiển đã được nạp. 2. public static Connection getConnection ( String url, String user, String pass ) throws SQLException : thực thi liên kết tới CSDL với thông tin tài khoản user và mậtmã pass. 3. public static Connection getConnection ( String url, Properties info ) throwsSQLException : tương tự như hai phương pháp trên ngoài những cung ứng thêm cácthông tin lao lý thuộc tính liên kết trải qua đối tượng người dùng của lớp Properties. Phần sau tất cả chúng ta sẽ thử một ứng dụng với databaseJava với lập trình cơ sở dữ liệu phần 4T rong phần này tất cả chúng ta sẽ thử liên kết với một cơ sở dữ liệu AccessBạn hoàn toàn có thể vào đây tìm hiểu thêm AccessTuy nhiên tất cả chúng ta sẽ sử dụng cơ sở dữ liệu mẫu thường có sẵn trong bộ MicrosoftOffice. Bạn hãy mở Microsoft Access lên. Sau đó click vào menu Help. Click tiếp vàoSample DatabasesTiếp tục chọn Northwind Sample Database. Đây là ” đồ vật thời cổ xưa ” có từ thời Access 2000. Nhưng đâu có hề hấn gì, ta vẫn học được nhiều điều từ những đồ vật thời cổ xưa như vậy. Nếu Northwind mở ra thì OK, bạn hoàn toàn có thể liên tục. Nếu không bạn chỉ việc đưa CDcài đặt Microsoft Office vào để cài thêm thôi. Ngay cả khi không có CD thiết lập, bạncũng chỉ cần vào Google tìm là có ngay. Bây giờ tất cả chúng ta sẽ tạo Data Source Name cho CSDL bằng cách vào ControlPanel và chọn ODBC Data Source. Nếu bạn dùng Windows Vista, bạn cần vào Administrative Tools trong ControlPanel, sau đó chọn Data Source ( ODBC ) Khi đó hành lang cửa số ODBC Data Source Administrator sẽ mở ra. Tiếp theo nhấn vào nút Add, bạn sẽ thấy hiển thị list những trình điều khiểnCSDL hiện có. Bạn chọn Microsoft Access Driver ( *. mdb ) và nhấn Finish. Cửa sổ thông số kỹ thuật cho tậptin Access sẽ Open và nhập NorthwindDSN vào ô Data Source NameBạn nhấn nút Select và chọn tập tin CSDL cần tạo data source name. Sau đó nhấnOK để kết thúc. Tập tin Northwind. mdb thường thì nằm tại thư mục : C : \ Program Files \ Microsoft Office \ OFFICE11 \ SAMPLESSau khi đã hoàn tất việc làm tạo DSN cho tập tin Northwind. mdb, bạn vào đâytham khảo code để triển khai liên kết với tập tin Northwind. mdb. Mở Eclipse, tạo một class mới và đặt tên là TestConnection. Sau khi copy code, save lại và chạy thử, bạn sẽ thấy kết quảLoading the driverEstablishing connectionConnect to C : \ Program Files \ Microsoft Office \ OFFICE11 \ SAMPLES \ Northwindsuccessfully ! Ta đã liên kết thành công xuất sắc vào CSDL NorthwindJava với lập trình cơ sở dữ liệu phần 5T rong quy trình thao tác với CSDL, tất cả chúng ta sẽ gặp phải yếu tố quy đổi giữakiểu dữ liệu trong CSDL sang kiểu dữ liệu Java tương hỗ và ngược lai. Việc chuyển đổinày được thực thi như trong 2 bảng sau. Bảng quy đổi từ kiểu dữ liệu SQL sang JavaBảng quy đổi từ kiểu dữ liệu Java sang SQLjava. sql. StatementStatement là một trong 3 lớp JDBC cơ bản dùng để biểu lộ một câu lệnh SQL. Mọithao tác trên CSDL được thực thi trải qua 3 phương pháp của lớp Statement. Phương thức executeQuery ( ) nhận vào 1 tham số là chuỗi nội dung câu lện SQL vàtrả về 1 đối tượng người dùng kiểu ResultSet. Phương thức này được sử dụng trong những trườnghợp câu lệnh SQL có trả về những tác dụng trong CSDL.Phương thức executeUpdate ( ) cũng nhận vào 1 tham số là chuỗi nội dung câu lệnhSQL. Tuy nhiên phương pháp này chỉ sử dụng được so với những cây lệnh update nộidung CSDL. Kết quả trả về là số dòng bị ảnh hưởng tác động bỡi câu lệnh SQL.Phương thức execute ( ) là trường hợp tổng quát của 2 phương pháp trên. Phươngthức nhận vào chuỗi nội dung câu lệnh SQL. Câu lệnh SQL hoàn toàn có thể là câu lệnh truyvấn hoặc update. Nếu tác dụng của câu lệnh là những dòng trong CSDL thì phươngthức trả về giá trị true, ngược lại trả về giá trị false. Trong trường hợp giá trị true, sau đó tất cả chúng ta hoàn toàn có thể dùng phương pháp getResultSet ( ) để lấy những dòng kết quảtrả về. java.sql. ResultSetĐối tượng resultset là những dòng dữ liệu trả về của câu lệnh truy vấn CSDL. Lớp nàycung cấp những phương pháp để rút trích những cột trong từng dòng tác dụng trả về. Tấtcả những phương pháp này đều có dạng : type getType ( int | String ) Trong đó tham số hoàn toàn có thể là số thứ tự của cột hoặc tên cột cần lấy nội dung. Tại 1 thời gian tất cả chúng ta chỉ có thể thao tác trên 1 dòng của resultset. Để thao táctrên dòng tiếp theo tất cả chúng ta sử dụng phương pháp next ( ). Phương thức trả về giátrị true trong trường hợp có dòng tiếp theo, ngược lại trả về giá trị false.import java.sql. Connection ; import java.sql. DriverManager ; import java.sql. SQLException ; public class TestConnection { public static void main ( String args [ ] ) { Connection connection = null ; try { / / load driverClass. forName ( ” sun.jdbc.odbc. JdbcOdbcDriver ” ) ; System. out.println ( ” Loading the driver ” ) ; catch ( Exception e ) { / / problem load driver, class not existe. printStackTrace ( ) ; return ; try { String dbURL = ” jdbc : odbc : NorthwindDSN ” ; System. out.println ( ” Establishing connection ” ) ; connection = DriverManager. getConnection ( dbURL, ” “, ” ” ) ; System. out.println ( ” Connect to ” + connection. getCatalog ( ) + ” successfully ! ” ) ; / / Do whatever queries or updates you want here ! ! ! catch ( SQLException e ) { e. printStackTrace ( ) ; finally { if ( connection ! = null ) { try { connection.close ( ) ; } catch ( SQLException e ) { e. printStackTrace ( ) ;

Source: https://vh2.com.vn
Category : Tin Học