Trường Đại Học Công Nghệ Thông Tin: Lập Trình JDBC (Java Database Connectivity)

Chuyên khảo phân tích Chuong 6 lap trinh csdl voi jdbc updated, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Chuyên ngành

Công Nghệ Phần Mềm

Người đăng

Ẩn danh

Thể loại

bài giảng
55
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. Khái niệm cơ bản

2. Kiến trúc JDBC & JDBC APIs

3. Các bước làm việc với Database dùng JDBC

4. Một số lớp và phương thức cơ bản trong JDBC API

5. Các loại JDBC Drivers

5.1. Type 1: JDBC-ODBC Bridge

5.2. Type 2: Java to Native API

5.3. Type 3: Java to Network Protocol Or All-Java Driver

5.4. Type 4: Java to Database Protocol

6. JDBC API

6.1. JDBC URL

6.2. RDBMS Database URL format

7. Các bước làm việc với CSDL

8. Một số lớp và phương thức cơ bản

9. Kết nối CSDL với JDBC

9.1. Cách nạp Database Driver

9.2. Database URL

10. Thi hành SQL Commands

11. Ví dụ minh họa

11.1. Ví dụ minh họa - JDBC ODBC

11.2. JDBC Driver SQL Server 2000

12. PreparedStatement

12.1. PreparedStatements

12.2. Cung cấp giá trị cho tham số của PreparedStatement

12.3. Ví dụ

13. Lớp Quản Lý DB Connection

13.1. Simple version of manager

13.2. Simple version of ConnectionManager

14. ResultSet

14.1. ResultSet Methods

14.2. ResultSet Methods for Getting Data

14.3. ResultSet cập nhật database

15. JTable

15.1. JTable Class Diagram

Tóm tắt

I. Tổng Quan Về JDBC Kết Nối Cơ Sở Dữ Liệu Trong Java

JDBC (Java Database Connectivity) là một thư viện chuẩn trong Java cho phép các lập trình viên truy xuất và thao tác với các cơ sở dữ liệu như MySQL, Oracle, và SQL Server. Thư viện này cung cấp một giao diện đơn giản để thực hiện các truy vấn SQL và quản lý kết nối đến cơ sở dữ liệu. Việc sử dụng JDBC giúp lập trình viên dễ dàng phát triển ứng dụng mà không cần phải học các API khác nhau từ các nhà cung cấp phần mềm khác nhau.

1.1. JDBC Là Gì Khái Niệm Cơ Bản Về JDBC

JDBC là một API cho phép Java ứng dụng kết nối và tương tác với cơ sở dữ liệu. Nó cung cấp các phương thức để thực hiện các truy vấn SQL và nhận kết quả trả về từ cơ sở dữ liệu.

1.2. Kiến Trúc JDBC Cách Hoạt Động Của JDBC

Kiến trúc JDBC bao gồm DriverManager, các JDBC drivers và các đối tượng Connection, Statement, và ResultSet. DriverManager quản lý các driver và kết nối đến cơ sở dữ liệu thông qua các driver này.

II. Vấn Đề Thường Gặp Khi Kết Nối Cơ Sở Dữ Liệu Với JDBC

Khi làm việc với JDBC, lập trình viên có thể gặp phải một số vấn đề như lỗi kết nối, không tìm thấy driver, hoặc lỗi trong câu lệnh SQL. Những vấn đề này có thể gây khó khăn trong quá trình phát triển ứng dụng. Việc hiểu rõ các lỗi này và cách khắc phục là rất quan trọng.

2.1. Lỗi Kết Nối Nguyên Nhân Và Cách Khắc Phục

Lỗi kết nối thường xảy ra do thông tin cấu hình không chính xác như URL, tên người dùng hoặc mật khẩu. Kiểm tra lại các thông tin này là bước đầu tiên để khắc phục.

2.2. Không Tìm Thấy Driver JDBC Giải Pháp Hiệu Quả

Nếu không tìm thấy driver JDBC, cần đảm bảo rằng driver đã được thêm vào classpath của dự án. Việc cài đặt driver đúng cách là rất quan trọng để đảm bảo kết nối thành công.

III. Phương Pháp Kết Nối Cơ Sở Dữ Liệu Bằng JDBC Các Bước Cụ Thể

Để kết nối đến cơ sở dữ liệu bằng JDBC, lập trình viên cần thực hiện một số bước cơ bản như nạp driver, tạo kết nối, và thực hiện các truy vấn. Mỗi bước đều có những yêu cầu và cách thực hiện riêng.

3.1. Bước 1 Nạp Driver JDBC Đúng Cách

Nạp driver JDBC là bước đầu tiên và quan trọng. Sử dụng Class.forName() để nạp driver vào bộ nhớ trước khi thực hiện kết nối.

3.2. Bước 2 Tạo Kết Nối Đến Cơ Sở Dữ Liệu

Sử dụng DriverManager.getConnection() để tạo kết nối đến cơ sở dữ liệu. Cần cung cấp URL, tên người dùng và mật khẩu để xác thực.

3.3. Bước 3 Thực Hiện Các Truy Vấn SQL

Sau khi kết nối thành công, lập trình viên có thể sử dụng các đối tượng Statement hoặc PreparedStatement để thực hiện các truy vấn SQL và xử lý kết quả.

IV. Các Loại JDBC Drivers Lựa Chọn Phù Hợp Cho Ứng Dụng

Có nhiều loại JDBC drivers khác nhau, mỗi loại có ưu điểm và nhược điểm riêng. Việc lựa chọn loại driver phù hợp sẽ ảnh hưởng đến hiệu suất và khả năng tương thích của ứng dụng.

4.1. Type 1 JDBC ODBC Bridge Driver

Driver này cho phép kết nối đến cơ sở dữ liệu thông qua ODBC. Tuy nhiên, nó thường chậm và không được khuyến nghị cho các ứng dụng sản xuất.

4.2. Type 4 Pure Java Driver

Driver thuần Java cho phép kết nối trực tiếp đến cơ sở dữ liệu mà không cần ODBC. Đây là loại driver nhanh nhất và được khuyến nghị sử dụng.

V. Ứng Dụng Thực Tiễn Của JDBC Trong Phát Triển Phần Mềm

JDBC được sử dụng rộng rãi trong phát triển phần mềm để xây dựng các ứng dụng quản lý cơ sở dữ liệu. Các ứng dụng này có thể bao gồm hệ thống quản lý bán hàng, quản lý nhân sự, và nhiều hơn nữa.

5.1. Ví Dụ Minh Họa Kết Nối Cơ Sở Dữ Liệu Với JDBC

Một ví dụ đơn giản về việc kết nối đến cơ sở dữ liệu MySQL bằng JDBC có thể bao gồm việc nạp driver, tạo kết nối, và thực hiện truy vấn để lấy dữ liệu.

5.2. Kết Quả Nghiên Cứu Hiệu Suất Của JDBC

Nghiên cứu cho thấy rằng việc sử dụng JDBC với driver phù hợp có thể cải thiện đáng kể hiệu suất của ứng dụng, đặc biệt là trong các tác vụ truy vấn lớn.

VI. Kết Luận Tương Lai Của JDBC Trong Phát Triển Ứng Dụng

JDBC vẫn là một công cụ quan trọng trong phát triển ứng dụng Java. Với sự phát triển của công nghệ, JDBC sẽ tiếp tục được cải tiến để đáp ứng nhu cầu ngày càng cao của lập trình viên.

6.1. Xu Hướng Mới Trong JDBC Tối Ưu Hóa Hiệu Suất

Các nghiên cứu hiện tại đang tập trung vào việc tối ưu hóa hiệu suất của JDBC thông qua việc cải thiện các driver và API.

6.2. Tương Lai Của JDBC Hướng Đi Mới Trong Kết Nối Cơ Sở Dữ Liệu

Với sự phát triển của các công nghệ mới như NoSQL, JDBC cũng cần phải thích nghi để hỗ trợ các loại cơ sở dữ liệu mới này.

10/07/2025

Trích đoạn nội dung tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM LẬP TRÌNH JDBC (JAVA DATABASE CONNECTIVITY) NỘI DUNG  Khái niệm cơ bản  Kiến trúc JDBC & JDBC APIs  Các bước làm việc với Database dùng JDBC  Một số lớp và phương thức cơ bản trong JDBC API  Các loại JDBC Drivers  Ví dụ minh họa Giới thiệu về JDBC  JDBC (Java DataBase Connectivity) là một thư việc chuẩn dùng để truy xuất các cơ sở dữ liệu như MS Acess, SQL Server, Oracle,… trong các ứng dụng Java bằng ngôn ngữ truy vấn SQL.  Các hàm truy xuất cơ sở dữ liệu với JDBC nằm trong gói java.* CSDL JDBC JDBC JDBC 3 CSDL Tại sao cần JDBC?  JDBC giúp các Java Developers tạo nên các ứng dụng truy xuất cơ sở dữ liệu mà không cần phải học và sử dụng các APIs do các công ty sản xuất phần mềm khác nhau bên thứ ba cung cấp. JDBC đảm bảo rằng bạn sẽ có thể phát triển nên các ứng dụng truy cập cơ sở dữ liệu có khả năng truy cập đến các RDBMS khác nhau bằng cách sử dụng các JDBC driver khác nhau. Kiến trúc JDBC Các khái niệm cơ bản  JDBC API: là một API hoàn toàn dựa trên Java.

 JDBC DriverManager: là trình quản lý JDBC giao tiếp trực tiếp với các trình điều khiển cơ sở dữ liệu cụ thể - giao tiếp thực sự với cơ sở dữ liệu.  Các RDBMS hay các nhà sản xuất phần mềm thứ 3 phát triển các drivers cho java đều phải tuân thủ đặc tả JDBC của SUN.  Các java developers dùng các JDBC drivers để phát triển các ứng dụng có truy cập, thao tác CSDL. JDBC Dirvers  Là một chương trình máy tính giúp truy cập đến các hệ DBMS khác nhau dùng kỹ thuật JDBC  Do các hãng xây dựng DBMS hoặc một đơn vị thứ 3 khác cung cấp.com/products/jdbc/drivers.

Các loại JDBC Dirvers  JDBC-ODBC Bridge plus ODBC Driver  A native API partly Java technology-enabled driver  Pure Java Driver for Database Middleware  Direct-to-Database Pure Java Driver Các loại JDBC Dirvers Type 1: JDBC-ODBC Bridge  JDBC-ODBC ủy nhiệm công Java Applications việc truy cập dữ liệu cho ODBC API. Chúng là trình điều khiển JDBC Driver Type 1 chậm nhất trong số còn lại. Phương thức truy xuất dữ liệu đòi JDBC-ODBC Library hỏi trình điều khiển ODBC được cài đặt trên máy tính client. ODBC Driver Database Các loại JDBC Dirvers Type 2: Java to Native API  Dùng Java Native API (JNI) Java Applications để gọi đến các thư viện API của database.

JDBC Driver Type 2 Khi đó sự chuyển đỗi này đặt trên máy client, một số mã nhị phân Database phải được cài đặt trên máy tính Library client. Database Các loại JDBC Dirvers Type 3: Java to Network Protocol Or All- Java Driver Java  Dùng Network protocol để giao tiếp Applications với JDBC middleware trên server. Chuyển đổi các lời gọi JDBC thành JDBC Driver Type 3 giao thức mạng độc lập với bất kỳ giao thức DBMS đặc thù. Sau đó, một phần Network protocol mềm trung gian (middleware) chạy trên JDBC Middleware máy server chuyển đỗi giao thức mạng (java) thành giao thức DBMS đặc thù.

Sự chuyển này đặt ở phía server mà không đòi hỏi cài đặt trên máy tính Database client. Các loại JDBC Dirvers Type 4: Java to Database Protocol Java Applications  Drivers thuần java và hiện thực/dùng database protocol để JDBC Driver Type 4 giao tiếp trực tiếp với CSDL. Thường là những JDBC drivers nhanh nhất. Database Chuyển lời gọi JDBC thành các lời gọi giao thức DBMS đặc thù.

JDBC API JDBC URL  Chỉ định nguồn dữ liệu sẽ kết nối 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 <dsn> phụ thuộc vào từng trình điều khiển cụ thể.  <other>: 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. 15 RDBMS Database URL format MySQL jdbc:mysql://hostname:portNumber/databaseName ORACLE jdbc:oracle:thin:@hostname:portNumber:databaseName DB2 jdbc:db2:hostname:portNumber/databaseName Java DB/Apache Derby jdbc:derby:dataBaseName (embedded) jdbc:derby://hostname:portNumber/databaseName (network) Microsoft SQL Server jdbc:sqlserver://hostname:portNumber;databaseName=dataBaseName Sybase jdbc:sybase:Tds:hostname:portNumber/databaseName Fig.24 | Popular JDBC database URL formats. Các bước làm việc với CSDL  Bước 1: nạp JDBC driver  Bước 2: tạo kết nối với CSDL dùng driver đã nạp ở bước 1  Bước 3: thao tác với CSDL Các bước làm việc với CSDL Các bước làm việc với CSDL selects a specific Connection type and instantiates it creates Statements for database actions Một số lớp và phương thức cơ bản  DriverManager - Nạp các JDBC driver vào trong bộ nhớ.

Có thể sử dụng nó để mở các kết nối tới một nguồn dữ liệu.  Connection - Biểu thị một kết nối đến một nguồn dữ liệu. Được dùng để tạo ra các đối tượng Statement, PreparedStatement và CallableStatement.  Statement - Biểu diễn một lệnh SQL tĩnh.

Có thể sử dụng nó để thu về đối tượng ResultSet.  PreparedStatement - Một giải pháp thay thế hoạt động tốt hơn đối tượng Statement, thực thi một câu lệnh SQL đã được biên dịch trước. JDBC Code static final String URL = "jdbc:mysql://dbserver/world"; static final String USER = "student"; static final String PASSWORD = "secret"; // 1. Get a Connection to the database.

Connection connection = DriverManager. Create a Statement Statement statement = connection. Execute the Statement with SQL command. ResultSet rs = statement.executeQuery("SELECT * FROM.

Use the Result.next( ) ) { String name = rs.getString("name"); Kết nối CSDL với JDBC  java.Connection là giao diện chuẩn để kết nối đến các hệ QTCSDL.  Mỗi hệ QTCSDL sẽ phải cài đặt interface này.  MySQL driver mysql-connector-java-5.jar  Derby driver  DB2 driver  DriverManager dùng để chọn driver và thiết lập kết nối. Kết nối CSDL với JDBC url = "jdbc:mysql://hostname/database" DriverManager <<interface>> creates Connection getConnection( url, user, createStatement(): Statement passwd) : Connection close( ) isClosed( ): boolean getCatalog( ): String HSQLConnection MySqlConnection Cách nạp Database Driver? Driver được cài đặt trong JAR file.

JAR phải được khai báo trong classpath: 1. Thêm jar file to vào IDE project 2. Thêm JAR file vào CLASSPATH CLASSPATH = /my/path/mysql-connector. Thêm JAR sử dụng Java command line: java -cp /my/path/mysql-connector.

Đặt JAR file vào JRE/lib/ext directory: C:/java/jre1.0/lib/ext/mysql- connector.jar Cách nạp Database Driver? DriverManager nạp registered database driver: 1. Tự động đối với type 4 & 5. Load the driver class trong chương trình: Class. Thêm thuộc tính jdbc.

Xác định thuộc tính jdbc.drivers trong command line: java -Djdbc. Database URL Địnnh dạng chung của database URL: String DB_URL = "jdbc:mysql://dbserver:3306/world"; Protocol Sub-protocol Hostname Port DatabaseName  Port là TCP port mà hệ QTCSDL sử dụng để lắng nghe yêu cầu.  3306 is the default port for MySQL  Sử dụng "localhost" nếu CSDL nằm cùng 1 máy. Database URL hostname và port là tùy chọn.

Đối với MySQL driver: defaults là localhost và port 3306 Ví dụ: "jdbc:mysql://localhost:3306/world" "jdbc:mysql://localhost/world" "jdbc:mysql:///world" "jdbc:mysql:/world" Thi hành SQL Commands  Để thi hành SQL command sử dụng pt createStatement của đối tượng Connection.  Statement interface định nghĩa các phương thức để thi hành câu lệnh SQL. Statement statement = connection.createStatement( ); // execute an UPDATE command int count = statement.println("Modified " + count + " records"); Thì hành câu lệnh SQL  Câu lệnh statement.executeQuery( ) trả về 1 ResultSet.  ResultSet là bảng chứa kết quả trả về của SQL.

Statement statement = connection.createStatement(); // execute a SELECT command ResultSet rs = statement.first(); // scroll to first result do { String name = rs.getString(1); // get by position int population = rs.getInt("population"); // by name .next() ); Ví dụ: Scanner console = new Scanner(System.print("Name of city to find? "); String name = console.trim(); String query = "SELECT * FROM city WHERE Name='" +name+ "'"; ResultSet rs = statement.executeQuery( query ); ResultSet Methods  ResultSet chứa các "row" trả về từ câu query.  ResultSet hỗ trợ các phương thức để lấy dữ liệu từ cột:  "get" by column number -- starts at 1 (not 0)!  "get" by column name -- field names in table/query. String query = "SELECT * FROM Country WHERE ."; ResultSet rs = statement.executeQuery( query ); // go to first row of results rs.first( ); get by column number // display the values get by name System.getInt( "population" ) ); ResultSet Methods  ResultSet hỗ trợ các phương thức để lấy từng dòng và cột trong kết quả trả về ResultSet next() : boolean go to next row of results. "false" if no more.

previous() : boolean go to previous row. "false" if 1st result. first() : boolean go to first row of results. last() : boolean go to last row of results.

absolute( k ) go to k-th row of results. getInt( name: String ) get int value of field "name" getInt( index: int ) get int value of k-th column in a record. ResultSet Methods for Getting Data ResultSet "get" methods return column data: getLong( 3 ) : get by column index (most efficient) getLong( "population" ) : get by field name (safest) getInt( ), getLong( ) - get Integer field value getFloat( ), getDouble() - get floating pt. value getString( ) - get Char or Varchar field value getDate( ) - get Date or Timestamp field value getBoolean( ) - get a Bit field value getBytes( ) - get Binary data getBigDecimal( ) - get Decimal field as BigDecimal getBlob( ) - get Binary Large Object getObject( ) - get any field value Thi hành câu lệnh SQL Commands Statement interface định nghĩa nhiều phương thức Resultset rs = statement.");  use for statements that return data values (SELECT) int count = statement.");  use for INSERT, UPDATE, and DELETE boolean b = statement.execute("DROP TABLE test");  use to execute any SQL statement(s) Các bước làm việc với CSDL  Thao tác với CSDL: Ví dụ minh họa – JDBC ODBC … Connection myCon; Statement myStatement; ResultSet myResultSet; String sUsername, sPassword; try { Class.JdbcOdbcDriver”); myCon = DriverManager.getConnection("jdbc:odbc:ThuchanhJ2EE", "", ""); myStatement = myCon.createStatement(); myResultSet = myStatement.executeQuery("Select * from Account"); Ví dụ minh họa - JDBC ODBC while (myResultSet.next()) { sUsername = myResultSet.getString(1); sPassword = myResultSet.getString(2); if (sUsername.equals("admin")) return true; } myResultSet.toString()); } JDBC Driver SQL Server 2000 … Connection myCon; Try { // JDBC Driver for SQL Server 2000 Class.SQLServerDriver"); myCon = DriverManager.getConnection("jdbc:microsoft:sqlserver://hntin:1433; DatabaseName=ThuchanhJ2EE; User=sa; Password=sa"); … } catch (Exception e) { … } JDBC Driver SQL Server 2000  Lưu ý:  Cần cài đặt SQL Server Service Pack 4 trước khi dùng JDBC Driver kết nối trực tiếp đến SQL Server  Kiểm tra xem cổng 1433 của SQL Server đã mở chưa bằng cách vào cửa sổ dòng lệnh gõ telnet <hostname> 1433 PreparedStatement  Đối tượng PreparedStatement chứa 1 câu lệnh SQL đã được biên dịch trước.

 Khi thực thi DBMS không cần phải biên dịch câu lệnh SQL.  Thường được dùng với các câu lệnh SQL có tham số. 39 PreparedStatements  Được tạo ra từ đối tượng Connection.  Ví dụ đối tượng PreparedStatement có chứa 2 tham số: “SELECT lastName, firstName, title ” + “FROM authors, titles, authorISBN ” + “WHERE authors.authorID ” + “AND titles.isbn AND ” + “lastName = ? AND firstName = ?” ); Cung cấp giá trị cho tham số của PreparedStatement  Trước khi thi hành, chúng ta cần cung cấp giá trị cho tham số trong đối tượng PreparedStatement.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ