Servlet kết nối các cơ sở dữ liệu

Một phần của tài liệu Tìm hiểu Servlet và JSP (Trang 26 - 28)

Các WebSite ngày nay không chỉ hiển thị những thông tin của các trang HTML tĩnh. Ví dụ, trong thương mại điện tử, một lĩnh vực đang thịnh hành trên thế giới, khách hàng có thể vào một trang Web bán hàng, chọn những mặt hàng cần mua, điền vào phiếu mua hàng sau đó thanh toán (bằng các phương thức trả tín phiếu, check, chuyển khoản, v.v.) thì sẽ nhận được các mặt hàng theo yêu cầu. Như vậy, các thông tin chi tiết về khách hàng phải được lưu trữ trong CSDL ở máy dịch vụ để thực hiện được các dịch vụ thương mại điện tử. Trong những kịch bản như thế, các Website phải được kết nối với các CSDL khác.

Servlet và JDBC là hai công cụ rất hiệu quả cho người lập trình ứng dụng Web kết nối Web với CSDL.

9.1 Vai trò của Servlet trong mô hình kết nối CSDL

Các chương trình ứng dụng trên mạng hiện nay đang chuyển từ mô hình Client/Server sang mô hình ba tầng, hoặc n-tầng. Trong mô hình ba tầng, Client không thực hiện truy vấn trực tiếp các CSDL mà thông qua tầng trung gian ở Server để truy vấn vào các CSDL.

Hình 6.5 Mô hình chương trình ứng dụng ba tầng

Mô hình ba tầng có ưu điểm là nó tách riêng phần biểu diễn ảo (ở phía Client) ra khỏi phần logic nghiệp vụ (tầng trung gian) và dữ liệu thô ở Server. Do vậy, nó cho phép nhiều Client có thể truy cập vào cùng một dữ liệu, cùng một nghiệp vụ và nhiều loại chương trình Java thực hiện như chương trình ứng dụng độc lập, chương trình Applet hay chương trình Web. Servlet có một vị trí quan trọng trong việc truy cập vào CSDL ở tầng trung gian. Ví dụ, hãy tưởng tượng có một chương trình đặt mua hàng trên mạng. Nếu không có tầng trung gian thì chương trình này phải kết nối trực tiếp với CSDL trên máy chủ và máy chủ phải ghi lại đơn hàng, cập nhật lại các trường dữ liệu trong CSDL

(trừ đi những mặt hàng đã bán theo đơn đặt mua). Chương trình của khách có thể bị ngắt nếu Server của CSDL bị thay đổi theo một cách nào đó. Hoặc có thể một ai đó can thiệp vào chương trình của khách, Server nhận được đơn đặt hàng nhưng không nhận được sự thanh toán của khách, mặc dù khách hàng đã thực hiện thanh toán theo đơn đặt hàng, v.v. Tầng trung gian sử dụng logic nghiệp vụ để trừu tượng hoá quá trình xử lý đặt hàng. Nó nhận thông tin từ đơn đặt hàng, kiểm tra tính xác thực của thẻ tín dụng, tài khoản, v.v, và chuyển những thông tin đó cho hệ CSDL. Khi hệ CSDL thay đổi thì tầng trung gian sẽ được cập nhật mà không làm ảnh hưởng đến chương trình của khách. Ngoài ra, tầng trung gian còn giúp ta tăng hiệu quả xử lý công việc vì nó hỗ trợ để kết nối chéo với nhiều hệ CSDL khác nhau.

9.2 Xử lý giao dịch với JDBC

Sự truyền thông giữa Client và tầng trung gian thường sử dụng HTTP (khi người sử dụng dùng Web Browser), RMI (khi người sử dụng dùng phần mềm ứng dụng hay Applet triệu gọi từ xa như đã đề cập ở chương II). Bộ điều khiển kết nối JDBC được sử dụng để quản lý sự trao đổi thông tin giữa tầng trung gian và CSDL.

JDBC là giao diện với SQL, một giao diện với hầu như tất cả các CSDL mô hình dữ liệu quan hệ hiện đại.

Ta hãy xét tiếp chương trình đặt mua hàng trực tuyến. Khách hàng điền vào đơn đặt mua và gửi đến cho Cửa hàng (hệ thống bán hàng trực tuyến). CSDL của hệ thống phải được cập nhật và chèn thêm bản ghi thông tin về khách hàng đó. Tương tự, sau khi giao dịch mua/bán kết thúc thì một số bảng trong hệ CSDL cũng sẽ phải được cập nhật.

Những vấn đề trên được các câu lệnh của SQL thực hiện. Đối tượng của lớp Connection được sử dụng để quản lý các giao dịch với JDBC.

Ví dụ Ta hãy xây dựng một chương trình ứng dụng thời gian thực có sử dụng Servlet. Để thực hiện ví dụ này, mặc định là ta đã biết sử dụng HTML và Microsoft FrontPage để tạo lập các trang Web.

Chúng ta hãy xét bài toán như sau: Sao Mai là công ty cho bán và cho thuê ô tô. Họ bán, cho thuê các ô tô gia đình và các ô tô chở khách cho các tua du lịch. Công ty muốn thành lập một câu lạc bộ cùng với một Website: CarSaoMai.com để thực hiện các dịch vụ trực tuyến nêu trên.

Để tham gia được vào CarSaoMai.com thì bạn phải điền vào một thẻ đăng ký gia nhập câu lạc bộ và chỉ những người đã đăng ký mới được cung cấp các dịch vụ trực tuyến để mua và sử dụng ô tô. Những người chưa đăng ký thì chỉ được quyền truy cập để biết được những thông tin về Công ty và những thông tin tóm tắt về các dịch vụ mà Công ty cung cấp.

Trước tiên, ta hãy thiết kế quá trình đăng ký như sau.  Tạo ra trang HTML chứa mẫu đăng ký.

 Cập nhật lại CSDL về các Servlet làm việc ở tầng trung gian khi có một người mới đăng ký.

 Tạo ra một CSDL chính để lưu trữ thông tin về các thành viên của câu lạc bộ.  Tạo ra Servlet khác để cho phép tất cả các thành viên câu lạc bộ kết nối được

vào Website và được phục vụ.

Một phần của tài liệu Tìm hiểu Servlet và JSP (Trang 26 - 28)

w