Tài liệu tham khảo:
Working with Database and Security in Java by Aptech.
http://java.sun.com
Database Programming with JDBC and Java by O’Reilly.
JDBC™ API Tutorial and Reference, Third Edition By Maydene Fisher, Jon Ellis, Jonathan Bruce.
The End
40 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3444 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Báo cáo Môn công nghệ java - Tìm hiểu về jdbc và kết nối cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NHẬN XÉT CỦA GIÁO VIÊN
Nguyễn Mạnh Sơn
BÁO CÁO MÔN CÔNG NGHỆ JAVA
Đề Tài: Tìm hiểu về JDBC và kết nối CSDL
Nhóm:
Nguyễn Văn Chung
Lê Văn Dương
Nguyễn Việt Anh
Nguyễn Xuân Hiếu
Vũ Đức Tuyên
Chương 1: Tổng quan về JDBC
Giới thiệu:
Giải thích về JDBC
Kết nối cơ sở dữ liệu:
Java đã được công nhận như là xương sống trong việc điện toán doanh nghiệp. Cốt lõi của những ứng dụng Java trong doanh nghiệp phụ thuộc vào hệ quản trị cơ sở dữ liệu (Database Managerment Systems – MBMS), nó thực thi như là kho của dữ liệu doanh nghiệp. Do đó, để xây dựng những ứng dụng như vậy, thì những cơ sở dữ liệu trong kho cần phải được truy nhập. Để kết nối các ứng dụng java với cơ sở dữ liệu, thì cần phải có những phần mềm giao diện lập trình ứng dụng (Application Programming Interfaces – APIs) cho việc kết nối cơ sở dữ liệu, như là JDBC (Java Database Connection) đã được sử dụng. Một trong những phầm mềm giao diện lập trình ứng dụng trong bộ sưu tập của thư viện ứng dụng và trình điều khiển cơ sở dữ liệu, nó thực hiện độc lập với ngôn ngữ lập trình, hệ thống cơ sở dữ liệu và hệ điều hành.
Định nghĩa của JDBC
JDBC là API Java cơ sở, mà nó cung cấp một các lớp và các giao diện được viết bằng Java để truy xuất và thao tác với nhiều loại hệ cơ sở dữ liệu khác nhau.
Sự kết hợp của JDBC API và Java nền tảng cung cấp các lợi thế cho việc truy xuất và bất kỳ nguồn dữ liệu khác nhau và sự linh hoạt của hoạt động trên một nền có hỗ trợ máy ảo Java (JVM). Đối với một nhà phát triển, đó là điều không cần thiết để viết một chương trình riêng biệt để truy cập vào các hệ cơ sở dữ liệu khác nhau như SQL Server, Oracle hoặc IBM DB2. Thay vào đó, một chương trình đơn lẻ với việc thực hiện JDBC có thể gửi Structured Query Language (SQL) hoặc gửi những câu lệnh khác tới các nguồn dữ liệu phù hợp hoặc hệ cơ sở dữ liệu.
Những thuận lợi của JDBC
Sử dụng tiếp tục dữ liệu hiện có
JDBC cho phép các ứng dụng doanh nghiệp tiếp tục sử dụng dữ liệu hiện có, ngay cả nếu dữ liệu được lưu trữ trên các hệ quản trị cơ sở dữ liệu khác nhau.
Cung cấp độc lập
Sự kết hợp của các Java API và JDBC API làm cho các cơ sở dữ liệu dịch chuyển từ một trong những nhà cung cấp này tới nhà cung cấp khác mà không cần các đoạn mã trong ứng dụng.
Nền độc lập
JDBC thường được sử dụng để kết nối với một ứng dụng người đến một “hậu trường” cơ sở dữ liệu, không có vấn đề của phần mềm quản lý cơ sở dữ liệu được sử dụng để kiểm soát các cơ sở dữ liệu. Trong vấn đề kiểu cách, JDBC là nền tảng chéo độc lập.
Dễ sử dụng
Với JDBC, sự phức tạp của một chương trình kết nối người dùng đến một “hậu trường” cở sở dữ liệu bị ẩn đi, và làm cho nó dễ dàng triển khai hơn, kinh tế hơn để duy trì.
Kiến trúc JDBC
Mô hình hai tầng
JDBC API hỗ trợ trợ mô hình hai tầng cũng như mô hình ba tầng xử lý dữ liệu cho các mô hình truy xuất cơ sở dữ liệu.
Trong mô hình hai tầng hệ thống máy khách / máy chủ, máy khách có thể liên hệ trực tiếp với cơ sở dữ liệu của máy chủ mà không cần của bất kỳ một công nghệ trung gian hoặc máy chủ khác. Trong mô hình hai tầng môi trường JDBC, các ứng dụng Java là khách và DBMS là cơ sở dữ liệu máy chủ.
Việc thực hiện tiêu biểu của mô hình hai tầng liên quan đến việc sử dụng JDBC API để chuyển và gửi yêu cầu của khách hàng tới cơ sở dữ liệu. Cơ sở dữ liệu có thể nằm cùng trên một mạng hoặc có khác mạng. Các kết quả được gửi trả về cho khách hàng một lần nữa thông qua JDBC API.
Mô hình ba tầng
Trong mô hình ba tầng, tầng giữa là tầng các dịch vụ, một máy chủ thứ ba đảm nhiệm việc gửi yêu cầu của khách hàng tới máy chủ cơ sở dữ liệu. Tầng giữa giúp việc tách các cơ sở dữ liệu máy chủ từ máy chủ WEB. Sự tham gia của máy chủ thứ 3 hoặc máy chủ Proxy tăng cường an nình bằng cách đi qua tất cả các yêu cầu đến máy chủ cơ sở dữ liệu thông qua máy chủ Proxy. Máy chủ cơ sở dữ liệu xử lý các yêu cầu và gửi lại các kết quả đến tầng giữa (Proxy Server), một lần nữa kết quả được gửi trả về máy khách (Client).
Mô hình ba tầng có lợi thế hơn so với mô hình hai tầng là nó đơn giản hóa hơn và giảm chi phí triển khai ứng dụng, ngoài ra nó còn cung cấp và sửa đổi quyền truy xuất vào cơ sở dữ liệu.
JDBC API
JDBC API là bộ sưu tập của các cách định nghĩa cơ sở dữ liệu theo nhiều cách khác nhau và các ứng dụng giao tiếp với nhau.
Cốt lõi của JDBC API được dựa trên Java, vì vậy, nó được dùng như là nền tảng để xây dựng chung giữa ba tầng kiến trúc. Do đó, JDBC API là tầng giữa. Nó định nghĩa thế nào là mở kết nối của một ứng dụng và cơ sở dữ liệu, các yêu cầu được gửi tới cơ sở dữ liệu, các câu lệnh truy vấn SQL được thực thi, và kết quả của câu truy vấn đó được lấy ra, JDBC đã đạt được mục tiêu thông qua một tập các giao diện Java, đó là sự thực hiện một cách riêng biết của một lớp cho một cơ sở dữ liệu cụ thể và được gọi là trình điều khiển JDBC (JDBC Driver).
Trình điều khiển JDBC
JDBC Driver
Trình điều khiển JDBC là cơ sở của JDBC API và nó chịu trách nhiệm đảm bảo rằng một ứng dụng có một quyền truy cập nhất quán và đồng bộ cơ sở dữ liệu. Các trình điều khiển chuyển đổi các yêu cầu của khách hàng thành một cách dễ hiểu, định dạng và sau đó trình bày nó vào cơ sở dữ liệu. Phản ứng này cũng được xử lý bởi trình điều khiển JDBC, và được chuyển đổi sang dạng mã Java và trình bày cho khách hàng.
Có bốn loại trình điều khiển là các mô tả đơn giản tóm tắt các đặc tính cơ bản của JDBC Driver và được liệt kê trong bảng sau:
Trình điều khiển loại 1
Trình điều khiển loại 1 là một sản phẩm cẩu nối phần mềm Java, còn được gọi là cầu nối JDBC-ODBC cộng thêm với trình điều khiển ODBC.
Những đặc tính: Trình điều khiển loại 1 sử dụng một công nghệ chuyển tiếp cung cấp ODBC truy cập thông qua trình điều khiển ODBC. Thiết lập này là một liên kết giữa JDBC API và ODBC API. OBDC API lần lượt thực hiện để có thể tiếp cận với cơ sở dữ liệu thông qua các trình điều khiển ODBC chuẩn. Máy khách cần phải cài đặt các thư viện ODBC gốc, trình điều khiển, và các tập tin hỗ trợ cần thiết, và trong hầu hết các trường hợp, cơ sở dữ liệu của khách hàng là những đoạn mã. Đây sẽ là trình điều khiển thích hợp cho một mạng doanh nghiệp và khách hàng cài đặt ở đâu không phải là vấn đề lớn.
Ưu điểm: Trình điều khiển loại 1 được viết cho phép truy cập và các cơ sở dữ liệu khác nhau thông qua việc thực hiện trình điều khiển ODBC. Trong một số trường hợp, sự lựa chọn duy nhất của khách hàng sẽ là MS Access hoặc Mircosoft SQL Server cho việc gọi tới ODBC.
Nhược điểm: Trình điều khiển loại 1 không hỗ trợ hoàn toàn các ứng dụng được cài đặt trên máy khách hàng. Các thư viện ODBC và các đoạn mã cơ sở dữ liệu phải nằm trên máy chủ, do đó nó làm giảm hiệu suất.
Trình điều khiển loại 2
Trình điều khiển loại 2 được gọi là Native-API, là một phần của trình điều khiển Java.
Những đặc tính: Trình điều khiển loại 2 bao gồm những đoạn mã Java được chuyển đổi từ lời gọi JDBC tới một cơ sở dữ liệu API địa phương như Oracle, Sybase, DB2, hoặc các hệ quản trị cơ sở dữ liệu khác. Đi kèm với các lời gọi trên là các phương thức để truy xuất vào cơ sở dữ liệu. Các đặc tính chung cơ bản của trình điều khiển này là việc đi kèm với các cơ sở dữ liệu để có thể giải thích được lời gọi JDBC đến cơ sở dữ liệu, ví dụ, Oracle OCI cung cấp trình điều khiển. Trình điều khiển loại 2 cũng cần có thư viện gốc cho cơ sở dữ liệu của khách hàng và được cài đặt trên máy khách hàng giống như trình điều khiển loại 1.
Ưu điểm: Trình điều khiển loại 2 có hiệu suất làm việc cao hơn so với trình điều khiển loại 1. Nó có các lời gọi được chuyển sang một cơ sở dữ liệu cụ thể.
Nhược điểm: Trình điều khiển loại 2 không hỗ trợ các ứng dụng mà phần mềm đó khách hàng không cài đặt trên máy, như là các yêu cầu đoạn mã gốc được yêu cầu trên máy khách hàng. Cơ sở dữ liệu và thư viện gốc đều nằm trên máy chủ, điều này sẽ làm giảm hiệu suất chương trình.
Trình điều khiển loại 3
Trình điều khiển loại 3 được biến đến như JDBC-NET, một trình điều khiển thuần Java.
Những đặc tính: Trình điều khiển loại 3 là một trình điều khiển thuần Java, là sự chuyển đổi từ lời gọi JDBC vào một hệ quản trị cơ sở dữ liệu với một giao thức mạng độc lập, là một lần nữa chuyển dịch lời gọi tới cơ sở dữ liệu cụ thể bơi một máy chủ ở tầng trung gian. Trình điều khiển này không yêu cầu bất kỳ cơ sở dữ liệu, thư viện có nguồn gốc cụ thể sẽ được cài đặt trên máy khách. Trình điều khiển loại 3 hộ trợ các ứng dụng Web nên được thực hiện bởi trình điều khiển loại 3, trình điều khiển này có thể triển khai tốt trên Internet mà không cần phải cài đặt trên máy khách hàng.
Ưu điểm: Trình điều khiển loại 3 có tính linh hoạt cao, nhất là nó không yêu cầu bất kỳ phần mềm hoặc dịch vụ có nguồn gốc được cài đặt trên máy khách hàng. Nó có một sự thích ứng cao để thay đổi và kiểm soát cơ sở dữ liệu mà không cần phải sửa đổi trình điều khiển ở máy khách hàng.
Nhược điểm: Cơ sở dữ liệu phải được thực hiện ở tầng máy chủ cụ thể. Vì nó thực hiện các ứng dụng dựa trên Web, nó thực hiện các biện pháp an toàn giống như việc truy xuất qua tường lửa.
Trình điều khiển loại 4
Trình điều khiển loại 4 được biến đến như Native-Protocol thuần Java hoặc giao thức Java tới cơ sở dữ liệu.
Những đặc tính: Trình điều khiển loại 4 là một trình điều khiển thuần Java, là sự chuyển đổi lời gọi JDBC vào giao thức mạng để liên lạc trực tiếp với cơ sở dữ liệu. Đây là liên kết giữa khách hàng gọi trực tiếp tới máy chủ hệ quản trị cơ sở dữ liệu và cung cấp một giải pháp thiết thực cho việc truy xuất mạng nội bộ. Trong hầu các trường hợp, các trình điều khiển cung cấp bởi nhà cung cấp cơ sở dữ liệu. Các trình điều khiển này cũng không cần một thư viện cụ thể cho cơ sở dữ liệu có nguồn gốc cụ thể để cấu hình trên máy của khách hàng và có thể triển khai trên Web mà không cần khách hàng cài đặt, theo yêu cầu cho các trình điều khiển loại 3.
Ưu điểm: Trình điều khiển loại 4 có thể giao tiếp trực tiếp với cơ sở dữ liệu bằng cách sử dụng Java Socket, chứ không cần phải thông qua một tầng trung gian hay thư viện gốc nào. Đây chính là lý do các trình điều khiển JDBC hoạt động nhanh nhất. Nó không cần phải bổ xung thư viện gốc là cần thiết để cài đặt trên máy khách hàng.
Nhược điểm: Hạn chế duy nhất của trình điều khiển loại 4 là họ được cơ sở dữ liệu cụ thể. Do đó, nếu trong trường hợp, các thay đổi về sau với cơ sở dữ liệu, thì các nhà phát triển ứng dụng có thể phải mua và triển khai một trình điều khiển loại 4 cụ thể mới cho các cơ sở dữ liệu mới.
Các bước để phát triển một ứng dụng JDBC
Đăng kí JDBC Driver
Bước đầu tiên trong một kết nối cơ sở dữ liệu các trình điều khiển JDBC với lớp DriverManager. DriverManager là một lớp tĩnh, trong đó quản lý các thiết lập của JDBC Driver có sẵn cho một ứng dụng. Đây là trách nhiệm của DriverManager, có trách nhiệm quản lý tất cả các tài liệu tham khảo cho tất cả các đối tượng điều khiển có sẵn cho một khách hàng JDBC.
Thiết lập kết nối cơ sở dữ liệu
Sau khi trình điều khiển được tải, kết nối với cơ sở dữ liệu có thể được thành lập. Một URL (Uniform Resource Locator) cơ sở dữ liệu xác định một kết nối JDBC và thông báo cho người quản lý trình điều khiển mà trình điều khiển và nguồn dữ liệu để sử dụng.
Tạo và thực hiện một lệnh SQL
Khi kết nối với cơ sở dữ liệu được thành lập, các câu lệnh SQL có thể được nhập tới cơ sở dữ liệu để xử lý . Câu lệnh SQL là ngôn ngữ phổ biến được chấp nhận cho ngôn ngữ truy vấn để thực hiện hành động truy tìm, chèn, cập nhật hoặc xóa trên cơ sở dữ liệu.
Kết quả quá trình
Sau khi thực hiện các câu lệnh SQL, kết quả được xử lý và trích ra bằng cách sử dụng các đối tượng ResultSet.
Đóng kết nối cơ sở dữ liệu
Kết nối cơ sở dữ liệu là một nguồn lực quan trọng và hạn chế, kết nối sẽ được đóng bằng cách thực hiện một lần phương thức close() là kết thúc.
Nạp trình điều khiển
Bước đầu tiên trong việc thành lập một kết nối với cơ sở dữ liệu và sử dụng trình điều khiển JDBC, là nạp lớp trình điều khiển bằng cách sử dụng phương thức Class.forName(). Phương thức Class.forName() chỉ định tạo ra một thể hiện của lớp trình điều khiển và nó được đăng ký với lớp DriverManager. Sau khi trình điều khiển được nạp thành công, kết nối với cơ sở dữ liệu có thể được thành lập.
Cú pháp: Class.forName(); Trong đó Protocol là những đặc tả cho các trình điều khiển được sử dụng.
Mẫu: Class.forName(“jdbc.odbc.JdbcOdbcDriver”); Đây là đoạn mã thiết lập kết nối cho trình điều khiển loại 1, trình điều khiển JDBC-ODBC.
Các kết nối
Bước thứ hai để thực hiện kết nối cơ sở dữ liệu là kết nối các trình điều khiển với DBMS. Kết nối được yêu cầu bằng cách sử dụng phương thức DriverManage.qetConnection(); Phương thức này sẽ kiểm tra tất cả các trình điều khiển sẵn có để thực hiện việc kết nối. Phương thức này cũng cho phép kiểm tra trình điều khiển nhận URL, và gửi tới máy khách.
Tạo câu lệnh và truy vấn
Khi kết nối với cơ sở dữ liệu được thành lập, một câu lệnh cần đã được tạo ra từ query execution. Các câu lệnh là đối tượng thường xuyên nhất được sử dụng để thực thi các lệnh truy vấn SQL mà không cần tham số nào thông qua. Các câu lệnh được tạo ra bởi phương thức Connection.createStatement();
Một câu lệnh có thể được chia làm ba loại dựa trên câu lệnh SQL viết gửi tới cơ sở dữ liệu, Statement và PreparedStatement được kế thừa từ giao diện Statement. CallableStatement được kế thừa từ PreparedStatement. Một đối tượng PreparedStatment thực hiện lệnh biên dịch câu lệnh SQL có hoặc không có tham số bên trong.
Sử dụng “executeQuery()” và “ResultSet”
Một đối tượng Statement khi được tạo ra có phương thức để thực hiện với các cơ sở dữ liệu khác nhau.
Phương thức executeQuery() là một trong những phương thức để lấy thông tin từ cơ sở dữ liệu. Nó xác nhận một lệnh đơn giản SQL SELECT như một tham số và trả lại các hàng cơ sở dữ liệu ở dạng một đối tượng ResultSet.
Xử lý ngoại lệ trong ứng dụng JDBC
Trong khi làm việc với ứng dụng cơ sở dữ liệu và JDBC API, thỉnh thoảng có thể có tính huống mà có thể gây ra các trường hợp ngoại lệ. Và chúng ta thường sử dụng ClassNotFoundException và SQL Exception để bắt lỗi.
Xử lý kết quả và đóng kết nối cơ sở dữ liệu
Điều cần để xử lý truy vấn
Một khi các truy vấn tới cơ sở dữ liệu đã được thực thi và đối tượng ResultSet đã được tạo, thì bước tiếp theo sẽ là xử lỹ và lấy kết quả trả về từ ResuilSet. Như dữ liệu trong ResultSet là bảng được sắp xếp có định dạng và vị trí con trỏ là ở trước dòng đầu tiên, nó cần phải sử dụng phương thức next() để tiếp tục.
Phương thức next() cho phép đi qua phía trước bằng cách di chuyển con trỏ một hàng về phía trước. Nó trả về kết quả đúng nếu vị trí con trỏ hiện tại là hợp lệ và trả về giá trị sai khi con trỏ ở vị trí cuối cùng của bảng.
Các phương thức xử lý truy vấn
Các phương thức người nhận được sử dụng để trích xuất dữ liệu hàng hiện tại của đối tượng ResultSet và lưu nó vào biến của Java có kiểu dữ liệu tương ứng. Những phương thức này được khai báo bởi giao diện ResultSet để sử dụng giá trị cột, hoặc các chỉ mục hoặc tên của cột. Nếu trong có nhiều hơn một cột có cùng tên, thì giá trị cột đầu tiên được kết hợp sẽ được trả lại. Có nhiều phương thức để thực hiện phương thực nhận này.
getString()
getInt()
getFloat()
getObject()
Đóng kết nối cơ sở dữ liệu
Bước cuối cùng cũng là bước quan trọng nhất trong một ứng dụng cơ sở dữ liệu là hoàn thành tất cả các kết nối và các câu lệnh, sau khi xử lý xong. Kết nối mở có thể gây rắc rối an ninh. Đơn giản với phương thức close() được cung cấp bởi các đối tượng Connection, Statement và ResultSet để đạt được mục đích. Để giữ cho các phương thức thoát cơ sở dữ liệu được ngăn nắp và luôn được giải thoát (mặc dù có thể bị ngoại lệ), các kết nối cơ sở dữ liệu cần được đóng trong vòng cuối khối.
Giới thiệu về Database metadata
Siêu dữ liệu của cơ sở dữ liệu
Ý nghĩa của từ điển siêu dữ liệu là dữ liệu về dữ liệu, trong nội dung của cơ sở dữ liệu nó cũng được xác định là thông tin mà xác định cấu trúc và tính chất của dữ liệu được lưu trữ trong cơ sở dữ liệu. JDBC hỗ trợ metadata truy xuất bằng cách cung cấp một số phương thức. Ví dụ, một bảng trong metadata là bảng đã được xác định tên, tên cột, kiểu dữ liệu, mô tả này được gọi là siêu dữ liệu.
Phương thức “DatabaseMetadata”
Giao diện “ResultSetMetaData”
Phương thức “ResultSetMetaData”
getColumnName()
getColumCount()
getColumeType()
Tổng kết chương 1
Giới thiệu về JDBC
Các kiểu Driver JDBC
Phát triển và xử lý ứng dụng JDBC
Giới thiệu về siêu dữ liệu
Chương 2: Kết nối cơ sở dữ liệu với JDBC
Giới thiệu
Trong chương này chúng ta sẽ mô tả cách làm việc với các thủ tục lưu trữ và kết quả cuộn được bằng cách sử dụng JDBC. Ngoài ra cũng giải thích các kỹ thuật khác nhau của việc tạo ra một tập kết quả cuộn và cập nhật một bảng kết quả cuộn. Cuối cùng, Chương này còn giải thích cho ta về những cách cập nhật nhóm, giao tác và những cách khác nhau để thực hiện chúng.
Thủ tục lưu trữ
Một thủ tục lưu trữ có thể được định nghĩa là một nhóm các câu lệnh SQL thực hiện một nhiệm vụ cụ thể. Thủ tục lưu trữ được sử dụng để nhóm được thực hiện trên một cơ sở dữ liệu máy chủ. Thủ tục lưu trữ có bất kỳ sự kết hợp của đầu vào, đầu ra hay đầu vào/đầu ra các thông số có thể được biên dịch và thực thi. Thủ tục lưu trữ sẽ được biên dịch trước, việc này sẽ làm nhanh hơn và hiệu quả hơn cách sự dụng câu lệnh SQL đơn lẻ. Thủ tục lưu trữ được hỗ trợ bởi hệ thống cơ sở dữ liệu như SQL Server 2005, Oracle hay Sybase.
Các đặc điểm của thủ tục lưu trữ
Chúng chưa các câu lệnh SQL bằng cách thiết lập và điều khiển cấu trúc.
Chúng có thể được gọi bằng tên trong một ứng dụng đang sử dụng SQL.
Chúng cho phép một chương trình ứng dụng chạy trong hai phần như là ứng dụng chạy trên máy khách và thủ tục thì được lưu trên máy chủ.
Một ứng dụng khách không sử dụng các thủ tục được lưu trữ làm tăng lưu lượng mạng trong khi một ứng dụng bằng cách sử dụng các thủ tục được lưu giữ làm giảm lưu lượng mạng. Một ứng dụng thủ tục lưu trữ bằng cách sử dụng cũng làm giảm số lần một cơ sở dữ liệu được truy cập.
Lợi ích của việc sử dụng lưu trữ thủ tục
Giảm mạng lưới khả năng tải: Trên cách gọi một thủ tục được lưu giữ quyền điều khiển được thông qua vào máy chủ cơ sở dữ liệu của ứng dụng bằng cách sử dụng các thủ tục lưu trữ. Trung cấp xử lý dữ liệu được thực hiện bởi các thủ tục lưu trữ và các hồ sơ theo yêu cầu của các ứng dụng máy khách được chuyển giao. Do đó, lưu lượng mạng giảm hiệu suất và nâng cao.
Tăng cường khả năng của phần cứng và phần mềm: Một ứng dụng được lưu trữ bằng cách sử dụng các thủ tục truy cập vào bộ nhớ, không gian đĩa và cài đặt phần mềm của máy chủ cơ sở dữ liệu. Như vậy, logic kinh doanh thực thi có thể được phân phối trên các máy có phần cứng yêu cầu và khả năng của phần mềm.
Tăng cường an ninh: An ninh được tăng lên nếu các thủ tục lưu trữ được cho quyền ưu đãi, cơ sở dữ liệu. Các quản trị cơ sở dữ liệu (DBA) hoặc thủ tục phát triển được lưu trữ sẽ có cùng một đặc quyền theo yêu cầu của thủ tục được lưu giữ. Mặt khác, khách hàng sử dụng ứng dụng không cần phải có cùng một đặc ân và điều này sẽ làm tăng tính bảo mật.
Giảm chi phí phát triển: Trong một ứng dụng cơ sở dữ liệu, các nhiệm vụ được lặp đi lặp lại có thể trở lại một tập cố định của dữ liệu, hoặc thực hiện cùng một bộ yêu cầu nhiều đến một cơ sở dữ liệu. Dùng lại một thủ tục được lưu trữ chung sẽ dẫn đến giảm chi phí phát triển và địa chỉ các trường hợp tái phát.
Tập trung kiểm soát: An ninh, quản lý và bảo trì các thói quen thường trở nên dễ dàng hơn nếu được chia sẻ logic nằm ở một nơi ở máy chủ. Ứng dụng Khách hàng có thể gọi được lưu trữ các thủ tục chạy truy vấn SQL với chế biến thêm ít hoặc không có.
Tạo một lưu trữ thủ tục sử dụng đối tượng câu lệnh
Thủ tục lưu trữ có thể được tạo bằng cách sử dụng một đối tượng Statement. Tạo một thủ tục được lưu với đối tượng Statement liên quan đến hai bước.
Bước 1: Tạo thủ tục lưu trữ và lưu nó vào một biến String.
Bước 2: Sử dụng đối tượng Statement
Tham số của một thủ tục được lưu trữ
Thủ tục lưu trữ có thể chấp nhận dữ liệu ở dạng thông số đầu vào được quy định tại thời gian thực hiện, có thể được số không hay nhiều tham số cho mỗi thủ tục được lưu giữ.
Các tham số khác nhau được sử dụng trong thủ tục lưu trữ là:
Vào
Ra
Vào / Ra
Tạo ra một đối tượng "CallableStatement"
Một thủ tục lưu trữ có thể được gọi từ một ứng dụng Java với sự giúp đỡ của một đối tượng CallableStatement. Một đối tượng CallableStatement không chứa các thủ tục lưu trữ riêng của mình, nhưng chỉ chứa một lời kêu gọi thủ tục được lưu giữ.
CallableStatement đối tượng được tạo ra bằng cách sử dụng prepareCall() giao diện phương pháp kết nối ofthe. Phần kèm theo trong dấu ngoặc nhọn là cú pháp thoát cho thủ tục được lưu giữ. Các trình điều khiển chuyển đổi cú pháp thoát vào SQL bản địa được sử dụng bởi cơ sở dữ liệu.
Thực hiện một thủ tục được lưu trữ bằng cách sử dụng câu lệnh "Callable"
Một đối tượng CallableStatement cung cấp một cách để gọi thủ tục được lưu giữ trong một cách tiêu chuẩn cho tất cả các hệ thống quản lý cơ sở dữ liệu. Các bước thực hiện một thủ tục được lưu trữ bằng cách sử dụng các đối tượng CallableStatement đã được cung cấp.
Thực hiện bằng cách sử dụng một đối tượng "CallableStatement"
cst.executeQuery()
ResultSet cuộn
ResultSet cuộn là gì
Một bộ kết quả SQL bao gồm một bộ các hàng từ cơ sở dữ liệu cũng như meta-thông tin về các truy vấn như các tên cột, và các loại và kích thước của mỗi cột. Vì thế, một kết quả có thể được nghĩ như là một bảng dữ liệu đại diện cho một tập kết quả cơ sở dữ liệu, mà thường được tạo ra bằng cách thực hiện một tuyên bố rằng các truy vấn cơ sở dữ liệu.
Một đối tượng ResultSet duy trì một con trỏ trỏ trước khi hàng đầu tiên. Tập hợp kết quả cuộn cung cấp khả năng di chuyển con trỏ về phía trước và lạc hậu đến một vị trí chỉ định hoặc đến một vị trí tương đối với vị trí hiện tại.
Scrollable Result Set
Một kết quả thiết lập mặc định đối tượng không thể được cập nhật hay cuộn lạc hậu và chuyển tiếp. Theo mặc định con trỏ chuột di chuyển về phía trước mà thôi. Vì vậy, nó có thể được iterated chỉ một lần và chỉ có từ những dòng đầu tiên đến dòng cuối.
Ngoài việc di chuyển về phía trước, một trong những dòng cùng một lúc, thông qua một ResultSet, trình điều khiển JDBC cũng cung cấp khả năng di chuyển lùi hoặc vào trực tiếp một hàng cụ thể. Cập nhật và xoá các hàng trong kết quả này cũng có thể. Các ResultSet có thể được giữ mở sau một tuyên bố COMMIT.
Các đặc tính của ResultSet là:
Scrollable
Updatable
Holdable
Phương thức quay lại cuộn "ResultSet"
Một tập kết quả cuộn cho phép con trỏ chuột sẽ được chuyển đến dòng bất kỳ trong kết quả. Khả năng này rất hữu ích cho các công cụ giao diện cho bộ duyệt kết quả. Kể từ khi tập kết quả liên quan đến cuộn trên cao, họ nên được sử dụng chỉ áp dụng khi cần di chuyển.
Bạn có thể tạo một ResultSet cuộn qua các phương pháp giao diện kết nối ofthe. Ba phương pháp có thể được gọi vào dụ kết nối trở về một ResultSet cuộn là:
createStatement()
prepareStatement()
prepareCall()
"ResultSet" giá trị không đổi
Giao diện ResultSet trong Java cung cấp truy cập đến một bảng dữ liệu đại diện một kết quả thiết lập cơ sở dữ liệu.
Một đối tượng ResultSet thường được tạo ra bằng cách thực hiện một tuyên bố rằng các truy vấn cơ sở dữ liệu.
Tĩnh không đổi các giá trị khác nhau có thể được chỉ định cho tập kết quả loại là:
TYPE_FORWARD_ONLY
TYPE_SCROLL_INSENSITIVE
TYPE_SCROLL_SENSITIVE
Phương thức hàng định vị
Theo mặc định, ResultSet luôn luôn chuyển động chỉ cho phép chuyển tiếp, có nghĩa rằng chỉ có giá trị con trỏ-định vị phương pháp gọi là next(). Bạn cần phải rõ ràng yêu cầu cho một ResultSet cuộn.
Bảng mô tả con trỏ-phương pháp định vị của ResultSet.
Phương thức
Mô tả
next()
Phương thức này di chuyển con trỏ về phía trước một hàng trong ResultSet từ vị trí hiện tại. Phương thức trả về true nếu con trỏ được vị trí trên một hàng hợp lệ và false khác
previous()
Phương thức di chuyển con trỏ ngược dòng một trong ResultSet. Phương thức trả về true nếu con trỏ được vị trí trên một hàng hợp lệ và nâng cao khác.
first()
Phương thức di chuyển con trỏ đến dòng đầu tiên trong ResultSet. Phương thức trả về true nếu con trỏ được vị trí trên dòng đầu tiên và false nếu ResultSet trống.
last()
Phương thức di chuyển con trỏ đến dòng cuối cùng trong ResultSet. Phương thức trả về true nếu con trỏ được vị trí trên dòng cuối và false nếu ResultSet trống.
beforeFirst()
Phương thức di chuyển con trỏ ngay trước hàng đầu tiên trong ResultSet. Không có giá trị trả về từ phương pháp này.
afterLast()
Phương thức di chuyển con trỏ ngay lập tức sau khi dòng cuối cùng trong ResultSet. Không có giá trị trả về từ phương pháp này
relative (int cows)
Phương thức di chuyển con trỏ tương đối với vị trí hiện tại của nó. Nếu hàng giá trị là 0, phương pháp này không có hiệu lực. Nếu hàng trị giá là tích cực, là di chuyển con trỏ về phía trước mà nhiều hàng. Nếu có các hàng ít hơn giữa các vị trí hiện tại và cuối của set Kết quả hơn so với quy định bởi các thông số đầu vào, phương pháp này hoạt động như phương thức afterLast(). Nếu giá trị hàng là tiêu cực, di chuyển con trỏ là lạc hậu mà nhiều dòng. Phương thức trả về true nếu con trỏ ở vị trí trên một hàng hợp lệ và sai khác.
absolute (int row)
Phương thức di chuyển con trỏ đến dòng xác định bởi giá trị hàng. Nếu hàng trị giá là tích cực, con trỏ là vị trí mà nhiều người từ các hàng đầu của ResultSet. Các dòng đầu tiên là số 1, thứ hai là 2, vv. Nếu giá trị hàng là tiêu cực, con trỏ là vị trí mà nhiều hàng từ khi kết thúc set Kết quả. Dòng cuối là số -1, thứ hai đến cuối là -2, và vv. Nếu giá trị hàng là D, phương thức này hoạt động như phương thức beforeFirst. Phương thức trả về true nếu con trỏ được vị trí trên một hàng hợp lệ và sai khác.
Updatable "ResultSet"
Updatable ResultSet là khả năng cập nhật hàng trong một tập kết quả bằng cách sử dụng phương pháp ngôn ngữ lập trình Java hơn là các lệnh SQL.
An ResultSet updatable sẽ cho phép lập trình để thay đổi dữ liệu trong hàng hiện có, để chèn một hàng mới, hoặc xóa một hàng hiện có. Các newUpdaceXXX() phương pháp giao diện ResultSet có thể được dùng để thay đổi dữ liệu trong một dòng hiện có.
Khi sử dụng một bộ kết quả updatable, khuyên để làm cho nó cuộn. Điều này cho phép để cho bất kỳ vị trí hàng đó là phải được thay đổi.
Kết hợp đồng thời
Updatability có nghĩa là để cập nhật dữ liệu trong một tập kết quả và sau đó kết hợp hoặc bản sao các thay đổi đối với cơ sở dữ liệu như: chèn dòng mới vào tập kết quả hoặc xóa các hàng hiện có.
Updatability cũng có thể yêu cầu cơ sở dữ liệu viết khóa để cung cấp truy cập vào cơ sở dữ liệu nằm bên dưới. Bởi vì bạn không thể có nhiều khóa viết đồng thời, updatability trong một tập kết quả là liên kết với concurrency trong truy cập cơ sở dữ liệu. kết hợp đồng thời là một quá trình mà trong đó hai sự kiện diễn ra song song.
Các loại đồng thời của một tập kết quả xác định cho dù đó là updatable hay không. Các giá trị không đổi mà có thể được chỉ định để chỉ định các loại đồng thời là:
CONCURRENCY.READ_ONLY
CONCURRENCY.UPDATABLE
Cập nhật một hàng
Các hàng có thể được cập nhật vào một bảng cơ sở dữ liệu bằng cách sử dụng một đối tượng ResultSet ofthe giao diện. Có hai bước liên quan đến quá trình này. Bước đầu tiên là để thay đổi các giá trị cho một hàng cụ thể bằng cách sử dụng phương pháp cập nhật khác nhau, nơi là một kiểu dữ liệu Java.
Các phương pháp cập nhật tương ứng với các phương pháp nhận sẵn cho lấy giá trị. Bước thứ hai là để áp dụng các thay đổi đối với các hàng ofthe cơ sở dữ liệu nằm bên dưới.
Các cơ sở dữ liệu chính nó là không được cập nhật cho đến khi bước thứ hai. Cập nhật các cột trong một ResultSet mà không gọi updateRow () Phương pháp này không thực hiện bất kỳ thay đổi đối với cơ sở dữ liệu.
Các bước cho việc cập nhật một dòng
Cập nhật một hàng là sửa đổi giá trị của một cột trong hàng hiện tại. Xem xét một kịch bản mà bạn muốn cập nhật các trường EHPLOYEE_ID của dòng đầu tiên bạn lấy. Điều này có thể hoạt động được thực hiện trong một số bước.
Bước 1: Định vị vị trí con trỏ
Bước 2: Cập nhật số cột
Bước 3: Chuyển giao cập nhật
Các bước để chèn một dòng
Thủ tục chèn một hàng là tương tự như cập nhật dữ liệu trong một dòng hiện tại, với một vài sự khác biệt. Để chèn một hàng, trước tiên bạn vị trí con trỏ, tiếp theo cập nhật một hoặc nhiều cột và rồi cuối cùng, cam kết thay đổi.
Bước 1: Định vị vị trí con trỏ
Bước 2: Cập nhật số cột
Bước 3: Chèn dòng
Các bước để xóa một dòng
Xóa một hàng từ một bộ kết quả updateable là dễ dàng. Hai bước để xóa các dòng được đến vị trí con trỏ và xóa các dòng. Xóa một dòng từ tập kết quả đã được mô tả trong bước sau.
Bước 1: Định vị vị trí con trỏ
Bước 2: Xóa dòng
Cập nhật hàng loạt
Cập nhật hàng loạt có thể được định nghĩa là một tập báo cáo cập nhật nhiều đó là nộp cho cơ sở dữ liệu cho chế biến như đợt một. Trong Java, PreparedStatement, và CallableStatement đối tượng có thể được sử dụng để gửi thông tin cập nhật hàng loạt.
Các quyền lợi của lô cập nhật là nó cho phép vou hồ sơ yêu cầu, chúng mang lại cho khách hàng, thay đổi các hồ sơ ở phía khách hàng, và sau đó gửi hồ sơ cập nhật về các nguồn dữ liệu tại một số thời gian khác. Đệ trình cập nhật nhiều với nhau, thay vì các cá nhân, rất có thể cải thiện hiệu suất. Ngoài ra, lô cập nhật được sử dụng khi không có cần phải duy trì một kết nối liên tục đến cơ sở dữ liệu.
Cập nhật hàng loạt sử dụng giao diện “Statement”
Các sở cập nhật mới mẻ cho phép một đối tượng Statement để gửi lệnh cập nhật nhiều với nhau như một đơn vị duy nhất, hoặc lô, để các DBMS nằm bên dưới.
Các bước thực hiện theo lô cập nhật bằng cách sử dụng giao diện Tuyên bố là:
Vô hiệu hoá các cam kết chế độ tự động
Tạo một ví dụ Statement
Thêm lệnh SQL đến các nhóm
Thực hiện lệnh hàng loạt
Cam kết những thay đổi trong cơ sở dữ liệu
Hủy bỏ các lệnh từ các hàng loạt
Cập nhật hàng loạt sử dụng giao diện “PreparedStatement”
Cập nhật hàng loạt được sử dụng với một PreparedStatement để kết hợp nhiều bộ của các giá trị tham số đầu vào với một đối tượng PreparedStatement duy nhất. Các phương thức addBatch() giao diện được đưa ra một câu lệnh cập nhật SQL như một tham số, và các lệnh SQL được thêm vào danh sách đối tượng của các lệnh sẽ được thực hiện trong các đợt kế tiếp. Đây là một ví dụ về bản cập nhật hàng loạt tĩnh.
PreparedStatement giao diện cho phép tạo các tham số lô update. Phương thức setXXX () của giao diện PreparedStatement được sử dụng để tạo ra cho mỗi thiết lập thông số, trong khi phương thức addBatch() bổ sung thêm một bộ tham số cho các nhóm hiện tại. Cuối cùng, các phương thức executeBatch giao diện PreparedScatement được gọi là để gửi các thông tin cập nhật đến DBMS, mà cũng xóa danh sách liên kết của tuyên bố của các phần tử nhóm.
Cập nhật hàng loạt sử dụng giao diện “CallableStatement”
Các chức năng của một đối tượng CallableStatement và một đối tượng PreparedStatement là như nhau. Các sở cập nhật mới mẻ trên một đối tượng CallableStatement có thể gọi thủ tục chỉ được lưu trữ các thông số đầu vào thattake hoặc không có thông số nào cả. Ngoài ra, các thủ tục lưu trữ phải trả lại một số cập nhật. Các phương thức executeBatch() giao diện CallableStatement được thừa hưởng từ PreparedStatement giao diện sẽ ném một BatchUpdateException nếu giá trị trả lại thủ tục lưu trữ là bất cứ điều gì otherthan một số cập nhật ortakes OUT hoặc IN/0UT tham số.
Giao tác
Giao tác là một tập hợp của một hay nhiều câu đó được thực hiện cùng nhau như một đơn vị. Điều này đảm bảo rằng hoặc là tất cả những điều khoản trong thiết lập được thực hiện hoặc không ai trong số họ được thi hành.
Xem xét các kịch bản của một chuyển tiền ngân hàng mà yêu cầu rút tiền từ một tài khoản để gửi tiền vào một mạng khác. Nếu quá trình rút hoàn thành, nhưng khoản tiền gửi không thành công thì khách hàng phải đối mặt với một mất mát. Nếu khoản tiền gửi thành công nhưng sau đó không rút các ngân hàng phải đối mặt với một mất mát. Kể từ khi cả hai bước hình thành một giao dịch duy nhất, một "giao tác" thường được định nghĩa là một đơn vị phân chia công việc.
Tính chất của giao tác
Các tài sản Atomicity, thống nhất, cách ly và Durability (ACID) đảm bảo rằng các giao dịch cơ sở dữ liệu được xử lý đáng tin cậy.
Nguyên tử số
Nhất quán
Cô lập
Độ bền
Thực hiện các giao tác thực hiện bằng cách sử dụng JDBC
Có bốn bước để thực hiện các giao tác bằng cách sử dụng JDBC, như Bắt đầu giao dịch, các giao dịch Thực hiện, sử dụng điểm Lưu và Đóng hoặc giao dịch kết thúc.
Bước l: Bắt đầu giao tác
Bước 2: Thực hiện giao tác
Bước 3: Sử dụng SavePoint
Bước 4: Đóng giao tác
Tổng kết chương 2
Thủ tục lưu trữ
Tập cuộn kết quả
Cập nhật tập kết quả
Cập nhật hàng loạt
Giao tác
Chương 3: RowSets
Giới thiệu về “RowSets”
RowSet có trong một giao diện mới javax.sql.rowset tiêu chuẩn gói phần mở rộng và có nguồn gốc từ giao diện ResultSet. Nó thường chứa một bộ các hàng từ một nguồn dữ liệu bảng như kết quả một tập. Nó có thể được cấu hình để kết nối và đọc / ghi dữ liệu từ một nguồn dữ liệu JDBC. Kể từ khi đối tượng RowSet là một thành phần JavaBeans nó cổ phiếu một số tính năng phổ biến của JavaBeans. Đó là:
Thuộc tính: Một trường trong một bộ hàng được biết đến như là tài sản của một RowSet. Mỗi tài sản có phương thức getter và setter thích hợp và cung cấp bởi nhà thực hiện giao diện.
Thông báo cơ chế JavaBeans: Một phong trào con trỏ, cập nhật, chèn, hoặc xóa một hàng hoặc thay đổi các nội dung toàn bộ RowSet tạo ra một sự kiện thông báo. Mô hình sự kiện của RowSet thông báo cho tất cả các thành phần thực hiện các giao diện RowSetListenec và được đăng ký như thính giả của các sự kiện đối tượng RowSet's.
Lợi ích của việc sử dụng "RowSet" trên "ResultSet"
Một đối tượng RowSet đã bổ sung một số lợi thế so với một đối tượng ResultSet đơn giản. Đó là:
Hệ thống quản lý cơ sở dữ liệu trình điều khiển orthe cung cấp bởi một số nhà cung cấp cơ sở dữ liệu không hỗ trợ bộ kết quả được cuộn và / hoặc updatable. Một đối tượng RowSet cung cấp scrollability và updatability cho bất kỳ loại DBMS hoặc lái xe. Scrollability được sử dụng trong giao diện ứng dụng và cho các chương trình cập nhật.
Một đối tượng RowSet, là một thành phần JavaBeans có thể được sử dụng để thông báo cho các thành phần của giao diện đăng ký thay đổi.
Scrollability: Khả năng di chuyển con trỏ một tập kết quả của một hàng cụ thể để được biết đến như Scrollability.
Updatability: Khả năng sử dụng ngôn ngữ lập trình Java hơn là các lệnh SQL được biết đến như Updatability.
Các loại RowSets khác nhau
RowSets được phân loại phụ thuộc vào thời gian của mình để kết nối cơ sở dữ liệu. Vì vậy một RowSet có thể là kết nối hoặc ngắt kết nối.
Một RowSet kết nối với đối tượng sử dụng một trình điều khiển JDBC để kết nối với một cơ sở dữ liệu quan hệ. Kết nối này được duy trì trong suốt tuổi thọ của đối tượng RowSet.
Một RowSet đối tượng bị ngắt kết nối kết nối vào một nguồn dữ liệu chỉ để đọc dữ liệu từ một ResultSet hay ghi dữ liệu về các nguồn dữ liệu. Ngày hoàn thành đọc / ghi hoạt động của đối tượng RowSet ngắt kết nối từ nguồn dữ liệu.
Thực hiện các kết nối "RowSet"
Lớp JDBCRowSet là việc thực hiện duy nhất của một RowSet kết nối. Nó tương tự như một đối tượng ResultSet và thường được sử dụng như là một lớp wrapper để chuyển đổi không cuộn chỉ đọc đối tượng ResultSet vào một đối tượng cuộn updatable,. Để thiết lập kết nối và để cư đối tượng RowSet, tài sản như tên người dùng, mật khẩu, url của cơ sở dữ liệu và datasourceName phải được thiết lập. Các tài sản lệnh truy vấn đó là xác định những dữ liệu đối tượng RowSet sẽ tổ chức. Có hai cách để tạo ra một đối tượng JDBCRowSet.
Sử dụng một đối tượng RowSet
Sử dụng một constructor mặc định
Thực hiện một ngắt kết nối "RowSet"
Một đối tượng CachedRowSet là một ví dụ của một đối tượng RowSet ngắt kết nối. Những đối tượng hoặc dữ liệu lưu trong bộ nhớ cache và các hoạt động trên dữ liệu này hơn là thao tác dữ liệu được lưu trữ trong cơ sở dữ liệu.
CachedRowSet đối tượng có khả năng nhận dữ liệu từ một cơ sở dữ liệu quan hệ hay từ bất kỳ nguồn dữ liệu khác mà các cửa hàng của mình một định dạng dữ liệu trong bảng. Một cột quan trọng phải được xác lập trước khi dữ liệu có thể được lưu vào nguồn dữ liệu. Có hai cách để tạo ra một đối tượng CachedRowSet.
Sử dụng một constructor mặc định
Sử dụng thực hiện SyncProvider
Giới thiệu về đối tượng "JDBCRowSet"
Một đối tượng JDBCRowSet là một đối tượng ResultSet tăng cường và mở rộng trong đó có một số tài sản và cơ chế một nghe mà làm cho nó một thành phần JavaBeans. Nó luôn luôn duy trì một kết nối vào cơ sở dữ liệu thông qua một driver JDBC. Con số này cho thấy một 2 tầng kiến trúc ứng dụng có sử dụng các lớp JDBCRowSet.
Những điển hình của một đối tượng đang JDBCRowSet:
Để thực hiện một đối tượng ResultSet cuộn và có bằng cách sử dụng tốt hơn về các trình điều khiển di sản không hỗ trợ di chuyển.
Để sử dụng các đối tượng JDBCRowSet như là một thành phần JavaBeans. Tính năng này cho phép sử dụng của nó như là một công cụ để lựa chọn một trình điều khiển JDBC trong một ứng dụng.
Sử dụng một đối tượng "JDBCRowSet"
Một dòng dữ liệu có thể được cập nhật, chèn và xóa một cách tương tự như một đối tượng ResultSet updatable. Bất kỳ thay đổi được thực hiện cho dữ liệu của một đối tượng JDBCRowSet cũng được phản ánh trên cơ sở dữ liệu.
Cập nhật
Chèn
Xóa
Khôi phục
Giới thiệu về "CachedRowSet"
CachedRowSet cửa hàng hoặc kho dữ liệu của nó trong bộ nhớ để nó có thể hoạt động trên dữ liệu của riêng mình ratherthan tùy thuộc vào dữ liệu được lưu trữ trong cơ sở dữ liệu. Kể từ khi, một Rowset ngắt kết nối không duy trì được kết nối vào cơ sở dữ liệu nó là nhẹ so với một đối tượng JDBCRowSet.
Ngắt kết nối RowSet đối tượng được serializable. Điều này cho phép một RowSet ngắt kết nối được truyền qua mạng cho khách hàng mỏng, chẳng hạn như PDA hoặc điện thoại di động. CachedRowSet là có tất cả khả năng của một RowSet kết nối và do đó có thể được dùng để làm cho một kết quả thiết cuộn và updatable. Một đối tượng CachedRowSet cũng có thể được sử dụng để trao đổi dữ liệu bảng với các nguồn dữ liệu khác hơn là một cơ sở dữ liệu quan hệ.
Sử dụng một đối tượng "CachedRowSet"
Một dòng dữ liệu có thể được cập nhật, chèn và xóa trong một đối tượng CachedRowSet. Thay đổi trong các dữ liệu được phản ánh trên cơ sở dữ liệu bằng cách gọi các phương thức accepcChanges().
Cập nhật
Chèn
Xóa
Khôi phục
Tổng kết chương 3
Giới thiệu về RowSet
JDBCRowSet
CachedRowSet
Tài liệu tham khảo:
Working with Database and Security in Java by Aptech.
Database Programming with JDBC and Java by O’Reilly.
JDBC™ API Tutorial and Reference, Third Edition By Maydene Fisher, Jon Ellis, Jonathan Bruce.
The End
Các file đính kèm theo tài liệu này:
- BÁO CÁO MÔN CÔNG NGHỆ JAVA - Tìm hiểu về JDBC và kết nối CSDL.doc