1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giới thiệu java và các cơ sở dữ liệu

32 2 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

Nội dung

Đồ án tốt nghiệp Giới thiệu Java sở liệu JAVA sở liệu Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới Nội dung JAVA sở liệu -1 Néi dung -2 Giíi thiƯu vỊ Java truy cập vào sở liệu- C¸c Java Enterprise API JDBC -5 Sù ¸p dơng JDBC -7 Giíi thiƯu thĨ vỊ c¸c class cđa JDBC -10 java.sql.DriverManager -13 java.sql.Driver -14 java.sql.Connection 14 java.sql.Statement -16 java.sql.PreparedStatement -17 java.sql.CallableSatement -17 java.sql.ResultSet 17 MetaData -19 Java RMI xếp đối tợng (Object Serialization) 20 Java IDL -22 Nhµ cung cấp/ Các giải pháp thành viên thứ ba -23 Oracle 23 CÊu tróc Web Server cđa Oracle 24 Java cartridge 24 C¸c class Java cđa riªng Oracle 24 Visigenic 25 Visigenic OpenChannel Client cho Java -26 Tr×nh giao tiếp JDBC ODBC Visigenic -26 T¬ng lai 27 Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới Giới thiệu Java truy cập vào sở liệu Sau gia đời, Java đà đợc hởng ứng cách nhiệt tình sóng ứng dụng viết Java Applet đà phát triển mạnh mẽ, nhà sáng tạo Java JavaSoft đà bắt đầu nghĩ đến phát triển Java thành platform theo kiểu khách/chủ (client/server) Các nhà phát triển Internet nhà t vấn vấn đề đà đa khái niệm Intranet nhận Java có nhiều điểm thuận lợi thị trờng client/server có client không quản lý (zero administration client), phần mềm tập trung cập nhật quản trị, phần mềm phiên mẫu tập trung vào Web Một tập Java API (một API chơng trình ứng dụng giao tiếp Application Programming Interfaces) quan trọng cần thiết trình giao tiếp với sở liệu liệu đợc tạo ra, đợc truy cập đến, đợc chia sẻ, cập nhật tham chiếu thông qua Internet Intranet dây nối nh sở liệu mạng Chú ý: Các Java API class method cho phép chơng trình Java tơng tác với hệ thống giới thực (real-world) Ví dụ, API java.net cho phép chơng trình Java có thĨ giao tiÕp dïng giao thøc TCP/IP vµ API java.awt cho chơng trình Java khả hiển thị menu, nút hộp danh sách Có số core API ( chẳng hạn nh class java.lang, java.net, java.net, java.awt, java.applet), phần hệ thống Java Sau có phÇn më réng chn cđa Java nh Java Server API vµ Java Management API Theo thêi gian, rÊt nhiỊu số chuẩn trở nên phần thiếu đợc ngôn ngữ Java trở thành core API Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới Cùng lúc, nhà cung cấp sở liệu, nh Oracle Informix, muốn chơng trình Java applet truy cập vào đợc sở liệu họ thông qua Internet Intranet, họ đà bắt đầu xây dựng các class method Java để truy cập vào liệu sở liệu họ Điều tạo nhiều cách truy cập vào sở liệu từ chơng trình ứng dụng viết Java Trong hội thảo Java (vào tháng năm 1996), hÃng Sun đa loạt Java API hớng trực tiếp đến ứng dụng theo kiểu client/server, Internet/Intranet Có nhiều API có Java Enterprise API, Java Commerce API, Java Security API Java Servlet/Jeeves API, tất API đà nâng ngôn ngữ Java lên mức platform có mục đích phát triển ứng dụng kiểu client/server chạy Internet Phần đề cập chủ yếu đến Java enterprise API: JDBC API, RMI (Java Remote Invocation), Object Serialization vµ hƯ thèng IDL Trong API API IDBC API chÝnh (JDBC tøc lµ Java Database Connectivity - tøc lµ sở liệu kết nối qua lại), API đà sớm đợc sử dụng nhiều chơng trình Java Hiện tại, việc truy cập vào sở liệu đợc thực cách sau: thông qua JDBC Java enterprise API; phơng pháp truy cập riêng nhà cung cấp sở liệu; class kiểu "thành viên thứ ba" (the third-party class), kiểu đợc áp dụng nhiều sở liệu Các phần giới thiệu cách truy cập vào sở liệu nhà cung cấp phơng pháp thông qua thành viên thứ ba và sơ qua phơng pháp JDBC Các Java Enterprise API Các Java Enterprise API nhanh chóng trở thành phần có giá trị ngôn ngữ lập trình Java mô hình Java máy ảo (Java Virtual Machine) Tất ngời đợc cấp giấy phép thực hiên API nh phần hệ thống họ Do đó, Java Enterprise API API vặn không phụ thuộc vào platform (cross-platform; Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới platform gồm phần cứng hệ điều hành máy tính) Nh đà đề cập đây, Java Enterprise API bao gåm JDBC, RMI, Object Serialization vµ IDL JDBC lµ mét tập class truy cập vào sở liệu; RMI API cho phép chơng trình Java có khả gọi method đối tợng (object) với khoảng tên khác (name-space); method đối tợng Object Serialization API cho phép chơng trình cất giữ (store) xử lý trực tiếp đối tợng này, thay cất giữ xử lý dới dạng liệu; hệ thống ngôn ngữ định nghĩa giao tiếp IDL (Interface Definition Language) cho phép chơng trình Java giao tiếp với nhóm quản lý đối tợng OMG (Object Management Group) Tập API cho phép phát triển ứng dụng mức enterprise theo kiểu client/server dùng đối tợng, applet servlet Java Khái niệm øng dơng ë møc enterprise lµ chØ hƯ thèng tiƯn ích quảng cáo, việc đặt trớc vé máy bay hàng không, hệ thống quảng cáo catalog, hệ thống thị trờng, quảng cáo sản phẩm hệ thống sản xuất, hệ thống ngân hàng (từ máy ATM phép toán với ngân hàng trực tiếp qua mạng lớn phạm vi mét níc hay qua nhiỊu níc), c¸c hƯ thống môi giới, vân vân Tất hệ thống dùng đến cấu trúc logic ba lớp (three-tier) (cơ sở liệu kiểu đầu cuôi (back-end), lớp quy định trung gian, lớp front end lớp giao diện đồ hoạ với ngời sử dụng (GUI - Graphical User Interface) Më réng cÊu tróc nµy, rÊt nhiỊu tỉ chøc ®· sư dơng mét cÊu tróc gäi lµ cÊu tróc N-Tier (tøc lµ N líp) N-Tier logic gì? có lẽ lệch yếu tố lịch sử chút Các ứng dụng client/server đợc bắt đầu với server sở liệu client với lớp trình diễn (các menu, hình liệu, vân vân ) Các hệ thống truyền thống có chơng trình client chứa tất ứng dụng logic Cấu trúc sau đà đợc sửa đổi thành cấu trúc ba lớp (đà đề cập đây), Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới phần logic business đà đợc tách rời từ client đợc tạo thành lớp riêng biệt Lớp phía client phía server Cùng với phát triển cực nhanh Internet platform nh Java, hệ thống trải qua tiến hoá Với chơng trình Java applet servlet, nhà phát triển tạo chơng trình Java mà chơng trình bao gồm nhiều chức (encapsulate function) liệu Các applet đợc gửi qua mạng (Internet/Intranet) vào thời điểm thích hợp đến đợc client thực chức Để có đợc nhìn toàn cảnh Java Enterprise API, bạn xem JDBC nh component làm cho sở liệu truy cập đợc, RMI IDL lại đợc coi phơng tiện để giao tiếp platform hệ thống JDBC JDBC (Java Database Connectivity- Tức sở liệu liên kết) class API liên quan đến sở liệu cho Java applet ứng dụng JDBC đà đợc SunSoft phát triển phần Java 1.1 JDBC, giống nh ngôn ngữ lập trình Java, không phụ thuộc vào platform sở liệu Để chạy đợc JDBC platform, Java máy ảo phải có trình quản lý trình điều khiển địa phơng (native driver manager); sở liệu cụ thể, trình điều khiển cho sở liệu cần thiết Chú ý: Việc thiết kế JDBC đà đợc hoàn thiện bëi møc gäi giao tiÕp (Call Lavel Interface hay CLI) XOPEN SQL sở liệu kết nối mở cđa Microsoft (Microsoft's Open Database Connectivity hay gäi lµ ODBC) ODBC dùa trªn sù truy cËp nhãm qua SQL (SQL Access Group hay SAG) CLI Do đó, JDBC ODBC có nguồn gốc (common root) Điểm Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới ngời biết thực đợc ODBC JDBC dễ hiểu áp dụng dễ Các nhà thiết kế JDBC dùng cách thiết kế chắt lọc các khái niệm từ ODBC Hai nguyên nhận dẫn đến cải tiến JDBC từ ODBC là: ODBC đợc dùng rộng rÃi, điều giúp cho nhà thiết kế giảm đợc trình nghiên cứu họ Vì có thực có hiệu tất platform hầu hết sở liệu Điều có nghĩa không cần phải phát triển trình điều khiển trình giao tiếp cho Java; hÃng Sun đối tác với nhà cung cấp có sản phẩm ODBC để thiết lập nhiều trình điều khiển, công cụ, áp dụng chúng Chú ý: Một khác quan trọng JDBC ODBC ODBC dùng nhiều phơng tiện ngôn ngữ lập trình C, chẳng hạn nh trỏ kiểu trả void - điều ngôn ngữ Java Trong môi trờng C, bạn định nghĩa hàm trả void để báo cho trình dịch thời gian chạy bạn muỗn trả kiểu trỏ với kiểu không xác định Sau bạn nhận đợc trỏ từ hàm đó, trỏ đó đợc chuyển thành kiểu đặc biệt Các nhà thiết kế Java mong muốn tránh đợc điều thao tác kiểu trỏ khác , họ đà thiết kế Java ngôn ngữ có kiểu trả nghiêm khắc Các method trả đối tợng mà đà đợc biết trớc Java trỏ Các nhà thiết kế JavaSoft thực JDBC khái niệm trừu tợng từ ODBC, chẳng hạn nh kết nối (Connection) tập kết (ResultSet) Chú ý: Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới Các hoạt động thông dụng sở liệu đòi hỏi phải trả hàng (rows) hàng liệu, cột bao gồm nhiều cột, trờng, đợc gọi tập kết (ResultSet) Nhìn vào đặc điểm JDBC, chúng thành công việc cung cấp khả truy cập vào sở liệu SQL Đối với JDBC, thao tác đơn giản sở liệu, chẳng hạn nh hỏi đáp, tạo, cập nhật, đợc thực method đơn giản Đối với thao tác phức tạp hơn, chẳng hạn nh tập kết phức tạp cất thủ tục tham số IN OUT, JDBC có lệnh riêng biệt Đối với chơng trình tự động công cụ nhà thiết kế, JDBC có class method MetaData, class method cung cấp thông tin nhiều đặc điểm mà sở liệu hỗ trợ, cấu trúc bảng, đặc điểm khác Chú ý: Khái niệm stored procedure hàm thủ tục bao gồm lệnh dựa sở liệu đợc cất server sở liệu Khi chơng trình phía client muốn thực hàm thay phải dùng lệnh sở liệu, chũng gọi stored procedure Điểm thuận lợi việc gọi stored procedure server, điều cho phép tính đồng nhất, vấn đề an ninh có hiệu Cũng giống nh thử tục thông thờng, stored procedure lấy tham số Các tham số IN đợc truyền cào stored procedure chũng không đợc trả lại; Các tham số OUT giá trị đợc stored procedure trả Khi làm việc với stored procedure, hệ thống phải làm việc với tham số với tập kết (ResultSet) Các phần sau đề cập cụ thể class method JDBC Trang Đồ án tốt nghiệp thiệu Java sở liệu Giới Sự áp dụng JDBC JDBC đợc thực giống nh gói (package) java.sql Bạn dùng gói cách khai báo import java.sql.* chơng trình Java bạn Hình vẽ sau mô tả chiến lợc thực JDBC Phần bên dới lớp API trình quản lý trình điều khiển JDBC cho nhiều loại sở liệu viết cho kết hợp phần cứng hệ điều hành, điều phần mô hình Java máy ảo Trình quản lý trình điều khiển JDBC đợc viết cho sở liệu cụ thể trình quản lý trình điều khiển chung cho nhiều sở liệu HÃng Sun có trình quản lý trình điều khiển cho sở liệu chung JDBC co trình quản lý trình điều khiển cho sở liệu ODBC Cầu nối JDBC/ODBC (Bridge JDBC/ODBC) lớp mỏng bên JDBC ®Ĩ híng c¸c lêi gäi ®Õn JDBC xang c¸c lêi gọi cho ODBC Trình cầu nối đợc cung cấp miễn phí với JDBC, đà đợc Intersolv phát triển Cầu nối JDBC/ODBC lớp mỏng JDBC giống với ODBC mặt thiết kế class method ( không cần lớp với nhiều chơng trình để chuyển đổi lẽ thân JDBC ODBC đà có nhiều ®iĨm gièng nhau) vµ JDBC cho phÐp truy cËp vµo tất sở liệu thông qua trình điều khiển ODBC Vì JDBC gần gũi với ODBC hÃng Sun đà làm cho trở nên dễ dàng nhà phát triển nhà cung cấp phần mềm độc lập bắt đầu phát triển ứng dụng sở liệu Java Nếu nh họ đà phát triển trình giao tiếp sở liệu hoàn toàn khác nhiều thời gian công sức để giao tiếp Java với sở liệu Các nhà cung cấp nh Oracle Borland có trình điều khiển cho JDBC để truy cập trực tiếp vào sở liệu họ chẳng hạn nh sở liệu Oracle Oracle Interbase Borland Các trình điều khiển có giá trị tơng tự việc phát triển ứng dụng sở liệu dùng Java Trang Đồ án tốt nghiệp Giới thiệu Java sở liệu Nếu ta nhìn sâu chút đặc điểm JDBC, chóng ta sÏ thÊy lµ JDBC cã sù lùa chọn load trình điều khiển hoàn toàn động, trình giao tiếp cho kết nối, lệnh tập kết JDBC đợc thực nh liệu ống ngữ cảnh tập kết có chứa dòng liệu mô tả dòng liệu Sự mô tả dòng liệu đợc gọi tập kết MetaData Dùng method java.sql, chơng trình yêu cầu loại tập kết chẳng hạn nh tên cột kiểu liệu JDBC đà chuẩn bị lệnh đối tợng lệng gọi đợc cho sở liệu địa phơng xử lý dùng thủ tục đà đợc biên dịch stored procedure Sự ¸p dơng ODBC cđa Sun Sù ¸p dơng cđa c¸c nhà cung cấp sở liệu Các tập tin *.class JDBC API/ java.sql.* JDBC API/ java.sql.* C¸c tËp tin *.class Applet/ ứng dụng Trình quản lý trình điều khiển JDBC Cầu nối ODBC IDBC Trình điều khiển ODBC Hệ điều hành Trình quản lý trình điều khiển JDBC nhà cung cấp sở liệu Java máy ảo Phần cứng/hệ điều hành máy Hệ điều hành Trang 10 Đồ án tốt nghiệp thiệu Java sở liệu Giới dùng thủ tục dùng cú pháp nh sau {call [tham-số]} Method setAutoCommit kết nối bật tắt chức tự động giáo phó (commit) thực (transaction), điều cho phép bạn thực đợc trình xử lý transaction Nếu chức tự động giao phó chế độ tắt dùng method commit() ®Ĩ gưi sù thay ®ỉi hc dïng method rollback() ®Ĩ huỷ bỏ thay đổi kể từ lần giao phó cuối Quá trình xử lý thực (Transaction proccessing) Transaction proccessing khái niệm chung đợc dùng ngữ cảnh sở liệu để biểu thị (denote), số thứ khác (among other things), bảo đảm tình trớc sau nh một, khả lấy lại đợc, tính trung thực sở liệu có liên quan Một transaction bao gồm nhiều lệnh SQL để đọc cập nhật sở liệu Để đảm bảo đợc tất transaction đợc thực nh đơn vị đơn (single unit) công việc, method commit() method rollback() đợc dùng Một transaction thông dụng đợc dùng hệ thống ngân hàng transaction tự động trả tiền Hai tập lệnh đợc dùng để ghi vào sổ nợ tài khoản bạn ghi vào sổ nợ phía ngân hàng cho vay tiền Nếu hai lệnh SQL thực thành công transaction đợc commit Ngợc lại nh hệ thống thực đợc hai lệnh transaction không đợc phép hoàn thành Không nh mà tất liệu bị ảnh hởng phận transaction bị đặt trở lại giá trị bạn đầu chúng, không nh ngời cho vay đợc tiền cách thần bí khách hàng bị số tiền tài khoản nợ mà không trả tiền Điều đợc gọi rollback() Trang 18 Đồ án tốt nghiệp thiệu Java sở liệu Giới Nói ngắn gọn, trình điều khiển commit/rollback cần thiết tạo thay đổi liệu nhiều bảng nhiều sở liệu Để đảm bảo tính trớc sau nh liệu, nên dùng commit() tất cập nhật đợc tạo Nếu nh phần cập nhật nên dùng rollback() sau thử làm lại Đổi với dự án nhỏ tạo đối tợng kết nối nh sau: Connection testConn = DriverManager.getConnection("jdbc : odbc : JDBCTest; IUD= sa; PW=pw"); Bây gời tạo lệnh đối tợng đơn giản cách dùng: Statement simpleStmt = testConn.createStatement(); java.sql.Statement Class Statement cã mét method lµ executeQuery cho lệnh thông thờng SQL, method trả liệu (trong khuôn khổ đối tợng ResultSet), thùc hiƯn method cho c¸c lƯnh cđa SQL, víi nhiỊu h¬n mét ResultSet (rÊt hiÕm khi) Method executeUpdate cã thĨ đợc dùng cho lệnh nh UPDATE, DELETE, INSERT tơng tự Method không trả tập kết (ResultSet) java.sql.PreparedStatement Class java.sql.PreparedStatement mở rộng class Statement phép khả thêm lệnh SQL biên dịch trớc vào hỗ trợ tham số kiểu IN Việc dịch trớc đợc thực có hiệu nh lệnh SQL đợc thực nhiều lần Các tham số đợc đặt cách dùng method setInt, setFloat, setLong (và method khác) Trang 19 Đồ án tốt nghiệp thiệu Java sở liệu Giới java.sql.CallableSatement Đối tợng java.sql.CallableSatement mở rộng PreparedStatement để hỗ trợ thêm stored procedure Đối tợng trả tham số kiểu OUT Nhng chúng đòi hỏi phải đợc đăng ký đơn giản cách dùng method registerOutParameter Sau đối tợng CallableSatement đợc thực tham số kết đợc đọc cách dùng method getInt, getLong, getFloat method khác java.sql.ResultSet Đối tợng java.sql.ResultSet chứa liệu liên quan kết lệnh SQL Dữ liệu đợc xử lý theo thứ tự hàng nối tiếp Trong hàng liệu, liệu đợc truy cập theo thứ tự cách dùng số số thứ tự theo tên Ví dụ, lệnh sau java.sql.ResultSet.getFloat(5) lấy giá trị cột hàng liệu thời Lệnh sau cho phép lấy liệu cột hàng liệu thời câu lệnh sau java.sql.ResultSet.getFloat("AuthorRoyalty") (ở đây, AuthorRoyalty tên liệu lấy ra) nh cột thứ cột AuthorRoyalty Lệnh java.sql.ResultSet.next() trỏ đến hàng liệu Chú ý: Đối với phiên JDBC 1.0 không cung cấp kiểu gạt cso thể gạt đợc bookmark gạt kiểu ODBC Nếu bạn thực dự án nhỏ (mini-project), để lấy đợc tất yêu cầu khách hàng "SYBEX Computer Books" đoạn chơng trình sau làm điều đó: Trang 20

Ngày đăng: 20/06/2023, 21:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w