Công nghệ hibernate

8 510 2
Công nghệ hibernate

Đang tải... (xem toàn văn)

Thông tin tài liệu

Công nghệ Hibernate Công nghệ Hibernate Bởi: Khoa CNTT ĐHSP KT Hưng Yên Giới thiệu Trước tìm hiểu Hibernate gì, cần chuẩn bị số kiến thức để làm tảng Đầu tiên, cần tìm hiểu "framework" gì? Framework ngày "lạm dụng" nhiều Nhiều người hay gán vài thứ "framework" gán gọi có không lại chuyện khác Theo cộng đồng wikipedia, từ framework dùng phát triển phần mềm khái niệm dùng để "cấu trúc hỗ trợ định nghĩa" mà dự án phần mềm khác xếp vào phát triển Thông thường, framework bao gồm program hỗ trợ, code libs ngôn ngữ scripting nằm chương trình phần mềm khác để giúp phát triển gắn thành phần khác dự án phần mềm lại với Tiếp theo, cần tìm hiểu "persistence layer" Như bạn biết, kiến trúc ứng dụng dụng phần mềm có nhiều loại Có loại chạy máy đủ Có chương trình muốn chạy phải kết nối sang máy khác (client-server) Một máy đóng vai trò người yêu cầu (client) máy khác đóng vai trò kẻ phục vụ (server) Người ta sử dụng thuật ngữ "tier" để loại máy có vai trò khác Tier client để máy đóng vai trò client tier server để máy đóng vai trò server Và loại ứng dụng client-server ứng dụng 2-tier (vì có tier thôi) Tương tự theo phát triển vũ bão công nghệ phần cứng phần mềm cộng với nhu cầu người dùng, doanh nghiệp xã hội ngày lớn, thấy có ứng dụng 3-tier n-tier để khắc phục nhược điểm ứng dụng 2-tier nhằm tăng sức mạnh xử lý cho ứng dụng "Layer" khái niệm khác với "tier" Và đừng lầm lẫn "tier" "layer" Tier thường gắn với phần cứng máy tính (về mặt physically) "layer" dính với vấn đề cách thức tổ chức bên ứng dụng Việc phân chia tier "trong suốt" (transparent) ứng dụng xét mặt luận lý (logically) Điều có nghĩa phát triển ứng dụng, không bận tâm đến thành phần (component) triển khai (deploy) mà ý tổ chức ứng dụng thành layer Ví dụ, ứng dụng chia làm phần sau: phần giao diện người dùng (UI layer), phần xử lý nghiệp vụ (business layer) phần chứa liệu (data layer) Cụ thể ra, business layer chia nhỏ thành layer business logic layer (chỉ quan tâm đến ý nghĩa nghiệp vụ, tính toán mang nhằm thoả mãn yêu cầu người dùng) persitence layer Persistence layer chịu trách nhiệm giao tiếp với data layer (thường hệ quản trị sở liệu quan 1/8 Công nghệ Hibernate hệ - Relational DBMS) Persistence layer đảm nhiệm nhiệm vụ mở kết nối, truy xuất lưu trữ liệu vào Relational DBMS Việc phân chia có lợi ích công việc tách bạch Người lo thiết kế xử lý UI việc tâm vào công việc Người lo business layer cần tập trung vào thiết kế phát triển thoả mãn requirement khách hàng mà tâm đến khía cạnh thực bên thông thường liên quan đến technical issues Còn người lo persistence layer việc trọng đến khía cạnh thực giải technical issues mà Cũng có DBA (DB Administrators) lo việc cài đặt tạo objects relational database Như vậy, bạn hiểu ứng dụng chia cách logically thành "layer" bạn hiểu persistence layer layer có nhiệm vụ kết nối Relational DBMSs truy xuất, thao tác liệu lưu trữ lưu trữ liệu vào chúng Hibernate framework framework cho persistence layer Và bạn thấy nhờ có Hibernate framework mà bạn phát triển ứng dụng bạn tâm vào layer khác mà bận tâm nhiều persistence layer Tương tự bạn có UI framework, bạn bận tâm nhiều UI layer Và xét đến cùng, việc bạn quan tâm business logic layer bạn có đáp ứng yêu cầu khách hàng không hay Và thông tin Hibernate framework từ website thức Hibernate: Hibernate dịch vụ lưu trữ truy vấn liệu quan hệ mạnh mẽ nhanh Hibernate giúp bạn phát triển class dùng để lưu trữ liệu theo cách thức hướng đối tượng: association, inheritance, polymorphism, composition collections Hibernate cho phép bạn thực câu truy vấn liệu cách sử dụng ngôn ngữ SQL mở rộng Hibernate (HQL) ngôn ngữ SQL nguyên thuỷ sử dụng API Không giống persistence layer khác, Hibernate không ẩn sức mạnh ngôn ngữ SQL khỏi bạn mà Hibernate đảm bảo cho bạn việc bạn đầu tư vào công nghệ tri thức sở liệu quan hệ luôn xác Và điều quan trọng Hibernate license theo LGPL (Lesser GNU Public License) Theo đó, bạn thoải mái sử dụng Hibernate dự án open source dự án thương mại (commercial) Hibernate dự án open source chuyên nghiệp thành phần cốt tuỷ sản phẩm JBoss Enterprise Middleware System (JEMS) JBoss, biết đơn vị Red Hat, chuyên cung cấp dịch vụ 24x7 hỗ trợ chuyên nghiệp, tư vấn huyấn luyện sẵn sàng hỗ trợ bạn việc dùng Hibernate 2/8 Công nghệ Hibernate Xây dựng ứng dụng với Hibernate “Tier” “Layer”: tier thường gắn với phần cứng mặt vật lý (physical) layer dính đến vấn đề cách thức tổ chức bên ứng dụng Việc phân chia tier “trong suốt” (transparent) ứng dụng mặt luận lý (logical) Điều có nghĩa ta phát triển ứng dụng, không bận tâm đến thành phần (component) triển khai (deploy) mà ý tổ chức ứng dụng thành layer Một ứng dụng chia làm phần sau: giao diện người dùng (presentation layer), phần xử lý nghiệp vụ (business layer) phần chứa liệu (data layer) Cụ thể ra, business layer chia nhỏ thành hai layer business logic layer (các tính toán nhằm thỏa mãn yêu cầu người dùng) persistence layer Persistence layer chịu trách nhiệm giao tiếp với data layer (thường hệ quản trị sở liệu quan hệ - Relational DBMS) Persistence đảm nhiệm nhiệm vụ mở kết nối, truy xuất lưu trữ liệu vào Relational DBMS Kiến trúc Hibernate 3/8 Công nghệ Hibernate Dự án Hibernate Hibernate dự án open source chuyên nghiệp thành phần cốt tuỷ sản phẩm JBoss Enterprise Middleware System (JEMS) JBoss, biết đơn vị Red Hat, chuyên cung cấp dịch vụ 24x7 hỗ trợ chuyên nghiệp, tư vấn huấn luyện sẵn sàng hỗ trợ bạn việc dùng Hibernate Các thành phần Hibernate project - Hibernate Core: Cung cấp chức persistence layer cho ứng dụng Java với APIs hỗ trợ XML mapping metadata - Hibernate Annotations: Các map class với JDK 5.0 annotations, bao gồm Hibernate Validator - Hibernate EntityManager: Sử dụng EJB 3.0 EntityManager API JSE với JEE server - Hibernate Tools: Các tool tích hợp với Eclipse Ant dùng cho việc sinh persistence object từ schema có sẵn database (reverse-engineering) từ file hbm sinh class java để thực persistence object, Hibernate tự tạo object database (forward-engineering) - NHibernate: Hibernate cho Net framework - JBoss Seam: Một Java EE 5.0 framework cho phát triển ứng dụng JSF, Ajax EJB 3.0 với hỗ trợ Hibernate Seam tỏ mạnh để phát triển ứng dụng Web 2.0 Nó tích hợp đầy đủ tất công nghệ "hot" Thư viện: bạn tìm lib Hibernate Core 3.2.6 GA antlr.jarcglib.jarasm.jarasm-attrs.jarscommons-collections.jarcommonslogging.jarhibernate3.jarjta.jardom4j.jarlog4j.jarhsqldb.jarjtds-1.2.jarservlet-2.3.1.jar Các bạn vào địa chỉ: www.hibernate.org để download Hibernate Core 3.2.6 GA Cấu hình Hibernate Hibernate cấu hình theo hai bước: - Cấu hình service bao gồm: tham số kết nối CSDL, caching tập lớp persistent - Cung cấp cho Hibernate thông tin lớp persist 4/8 Công nghệ Hibernate Để giải hai bước theo yêu cầu Hibernate, thảo luận vấn đề sau: - Tạo file cấu hình hibernate.cfg.xml - Xây dựng file định nghĩa ánh xạ để cung cấp cho Hibetnate thông tin lớp persistent - Các lớp sử dụng để persist rút trích lớp - Cấu hình nâng cao bao gồm: object caching quản lý giao dịch • Cấu hình Hibernate cung cấp phương pháp cấu hình: file properties theo chuẩn Java gọi hibernate.properties file có định dạng XML gọi hibernate.cfg.xml Chúng ta sử dụng file cấu hình XML để cấu hình service Hibernate Nếu hai file hibernate.properties hibernate.cfg.xml tìm thấy classpath ứng dụng hibernate.cfg.xml override lên thiết lập tìm thấy hibernate.properties Trước cấu hình Hibernate, bạn nên xác định service giữ kết nối đến CSDL Kết nối đến CSDL cung cấp Hibernate từ JNDI DataSource Một phương pháp thứ ba kết nối JDBC cung cấp người dùng Sử dụng kết nối JDBC quản lý Hibernate: Sau file cấu hình mẫu sử dụng loại kết nối JDBC quản lý Hibernate: 10 11 12 13 14 15 uid pwd jdbc:mysql://localhost/db com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect 5/8 Công nghệ Hibernate 16 17 Để sử dụng JDBC connection cung cấp Hibernate, file cấu hình yêu cầu thuộc tính: connection.driver_class, connection.url, connection.username, connection.password, dialect Thuộc tính dialect bảo cho Hibernate biết SQL dialect sử dụng để thao tác Nó sử dụng để đảm bảo câu Hibernate Query Language (HQL) chuyển đổi với SQL dialect CSDL Hibernate cần biết vị trí (đường dẫn tương đối so với classpath ứng dụng) tên mapping file - mô tả persistent classs Sử dụng JNDI DataSource Để sử dụng Hibernate với kết nối CSDL cung cấp JNDI DataSource, bạn cần thay đổi vài chỗ file cấu sau: 10 11 12 13 14 jdbc/myDataSource org.hibernate.dialect.MySQLDialect Bạn sử dụng loại cấu hình sử dụng Hibernate với application server: Jboss, WebSphere Thuộc tính connection.datasource phải có giá trị với tên JNDI DataSource cấu hình application server • Tạo định nghĩa ánh xạ Các định nghĩa ánh xạ gọi mapping document, sử dụng để cung cấp cho Hibernate thông tin để lưu trữ đối tượng đến CSDL quan hệ Các file ánh xạ cung cấp đặc tính tạo lược đồ CSDL từ tập hợp file ánh xạ 6/8 Công nghệ Hibernate Các định nghĩa ánh xạ cho đối tượng persistent lưu chung với file Phương pháp thích hợp định nghĩa cho đối tượng lưu file Quy ước đặt tên cho file ánh xạ sử dụng tên persistent class với phần mở rộng hbm.xml Ví dụ: file ánh xạ cho lớp Event có tên Event.hbm.xml 10 11 12 13 14 15 16 17 18 19 20 21 File ánh xạ bắt đầu hibernate-mapping element Thuộc tính package thiết lập package mặc định cho lớp Thuộc tính set, bạn cần cung cấp tên lớp persistent khác như: Speaker Attendee Thẻ class bắt đầu định nghĩa ánh xạ cho lớp persistent xác định, thuộc tính table tên quan hệ (relational) sử dụng để lưu đối tượng Element mô tả khóa persistent class - tự động phát sinh Thuộc tính name định nghĩa thuộc tính persistent class sử dụng để lưu giá trị khóa 7/8 Công nghệ Hibernate Element sử dụng để xác định tên lớp phát sinh khóa cho record lưu Ở sử dụng lớp native Sau danh sách generator phổ biến sử dụng Hibernate: - increment - phát sinh id (loại long, short int) tiến trình khác chèn liệu vào bảng - identity - hỗ trợ cột id DB2, MySQL, MS SQL Server, Sybase HypersonicSQL Id trả có loại long, short int - sequence - phát sinh sequence sử dụng sequence DB2, PostgreSQL, Oracle, SAP DB, McKoi Interbase Id trả có loại long, short int - hilo - Bộ phát sinh hilo sử dụng thuật toán hilo để phát sinh id - native - Nó chọn id, sequence hilo phụ thuộc vào khả CSDL phía dưới.Thuộc tính unsaved-value mô tả giá trị thuộc tính id cho thể transient lớp 8/8 ... nhiệm vụ mở kết nối, truy xuất lưu trữ liệu vào Relational DBMS Kiến trúc Hibernate 3/8 Công nghệ Hibernate Dự án Hibernate Hibernate dự án open source chuyên nghiệp thành phần cốt tuỷ sản phẩm JBoss... persistent - Cung cấp cho Hibernate thông tin lớp persist 4/8 Công nghệ Hibernate Để giải hai bước theo yêu cầu Hibernate, thảo luận vấn đề sau: - Tạo file cấu hình hibernate. cfg.xml - Xây dựng... service Hibernate Nếu hai file hibernate. properties hibernate. cfg.xml tìm thấy classpath ứng dụng hibernate. cfg.xml override lên thiết lập tìm thấy hibernate. properties Trước cấu hình Hibernate,

Ngày đăng: 31/12/2015, 14:51

Từ khóa liên quan

Mục lục

  • Công nghệ Hibernate

  • Giới thiệu

  • Xây dựng ứng dụng với Hibernate.

    • Dự án Hibernate 

    • Cấu hình Hibernate

    • Sử dụng kết nối JDBC được quản lý bởi Hibernate:

    • Sử dụng JNDI DataSource

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan