Cấu hình Hibernate

Một phần của tài liệu xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate (Trang 37 - 42)

Hibernate được cấu hình theo hai bước:

- Cấu hình service bao gồm: tham số kết nối CSDL, caching và tập các lớp persistent. - Cung cấp cho Hibernate các thông tin về các lớp được persist.

Để giải quyết hai bước theo yêu cầu của Hibernate, chúng ta sẽ thảo luận từng vấn đề sau:

36

- Xây dựng các file định nghĩa ánh xạ để cung cấp cho Hibetnate các thông tin về các lớp persistent.

- Các lớp được sử dụng để persist và rút trích các lớp.

- Cấu hình nâng cao bao gồm: object caching và quản lý giao dịch.

2.3.6.1 Cấu hình cơ bản

Hibernate cung cấp 2 phương pháp cấu hình: file properties theo chuẩn của Java được gọi là hibernate.properties và file có định dạng XML gọi là hibernate.cfg.xml. Chúng ta sẽ sử dụng file cấu hình XML để cấu hình các service của Hibernate. Nếu cả hai filehibernate.properties và hibernate.cfg.xml được tìm thấy trong classpath của ứng dụng thì hibernate.cfg.xml sẽ override lên các thiết lập được tìm thấy trong hibernate.properties.

Trước khi cấu hình Hibernate, đầu tiên bạn nên xác định service giữ kết nối đến CSDL như thế nào. Kết nối đến CSDL có thể được cung cấp bởi Hibernate hoặc từ JNDI DataSource. Một phương pháp thứ ba là kết nối JDBC được cung cấp bởi người dùng.

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

Sau đây là file cấu hình mẫu sử dụng loại kết nối JDBC được quản lý bởi Hibernate: 1. <?xml version="1.0"?>

2. <!DOCTYPE hibernate-configuration PUBLIC 3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5. <hibernate-configuration> 6. <session-factory> 7. <property name="connection.username">uid</property> 8. <property name="connection.password">pwd</property> 9. <property name="connection.url">jdbc:mysql://localhost/db</property> 10.<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 11.<property name="dialect">org.hibernate.dialect.MySQLDialect</property> 12.<mapping resource="com/manning/hq/ch03/Event.hbm.xml"/> 13.<mapping resource="com/manning/hq/ch03/Location.hbm.xml"/> 14.<mapping resource="com/manning/hq/ch03/Speaker.hbm.xml"/> 15.<mapping resource="com/manning/hq/ch03/Attendee.hbm.xml"/> 16.</session-factory> 17.</hibernate-configuration>

Để sử dụng JDBC connection được cung cấp bởi Hibernate, file cấu hình yêu cầu 5 thuộc tính: connection.driver_class, connection.url, connection.username, connection.password, dialect.

37

Thuộc tính dialect đảm bảo cho Hibernate biết SQL dialect nào được sử dụng để thao tác. Nó được sử dụng để đảm bảo các câu Hibernate Query Language (HQL) được chuyển đổi đúng với SQL dialect dưới CSDL.

Hibernate cũng cần biết vị trí (đường dẫn tương đối so với classpath của ứng dụng) và tên của các mapping file - mô tả persistent classs.

Sử dụng JNDI DataSource

Để sử dụng Hibernate với kết nối CSDL được cung cấp bởi JNDI DataSource, bạn cần thay đổi một vài chỗ trong file cấu hình như sau:

1. <?xml version="1.0"?>

2. <!DOCTYPE hibernate-configuration PUBLIC 3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5. <hibernate-configuration> 6. <session-factory name="java:comp/env/hibernate/SessionFactory"> 7. <property name="connection.datasource">jdbc/myDataSource</property> 8. <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 9. <mapping resource="com/manning/hq/ch03/Event.hbm.xml"/> 10.<mapping resource="com/manning/hq/ch03/Location.hbm.xml"/> 11.<mapping resource="com/manning/hq/ch03/Speaker.hbm.xml"/> 12.<mapping resource="com/manning/hq/ch03/Attendee.hbm.xml"/> 13.</session-factory> 14.</hibernate-configuration>

Chỉ sử dụng loại cấu hình này khi sử dụng Hibernate với application server: Jboss, WebSphere...Thuộc tính connection.datasource phải có cùng giá trị với tên của JNDI DataSource trong cấu hình application server.

2.3.6.2 Một số thuộc tính khi cấu hình Hibernate

Các thuộc tính cấu hình JDBC:

1. hibernate.connection.driver_class: lớp driver class.

2. hibernate.connection.url: url để kết nối tới CSDL thông qua driver. 3. hibernate.connection.username: uername để truy nhập vào CSDL. 4. hibernate.connection.password: password để truy nhập vào CSDL.

5. hibernate.connection.pool_size: số lượng tối đa các kết nối tới CSDL trong 1 thời điểm.

38

1. hibernate.dialect: Cho phép hibernate tối ưu hóa SQL cho thích hợp với CSDL quan hệ đặc biệt.

2. hibernate.show_sql: hiển thị câu lệnh SQL ra console khi thực thi (cách này thường được chọn để debug thay cho việc ghi log)

3. hibernate.format_sql: định dạng lại câu lệnh SQL và in ra console .

4. hibernate.use_sql_comments: cho phép sử dụng comment trong câu lệnh SQL. Các thuộc tính transaction hibernate

1.hibernate.transaction.factory_class: tên lớp TransactionFactory để sử dụng với Transaction API (mặc định là JDBCTransactionFractory ).

Giá trị của thuộc tính Dialect với từng HQTCSDLQH như sau: [table id=1 /] Ví dụ:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.Oracle11gDialect</property> <property name="hibernate.connection.driver_class">oracle.driver.jdbc.OracleDriver</property > <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property> <property name="hibernate.connection.username">system</property> <property name="hibernate.connection.password">Oracle123</property> <property name="hibernate.connection.autocommit">false</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="use_sql_comments">true</property> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransacti onFactory</property> <mapping resource="Table/Emp.hbm.xml"/> </session-factory> </hibernate-configuration>

39

2.3.6.3 Cách tạo 1 project Hibernate trong Netbeans

1. Tạo 1 project java application như bình thường và thực hiện add thư viện Hibernate vào trong Library của Project: Nhấp phải chuột vào Library -> Add Library (Download bản Netbeans full J2EE)

2. Xuất hiện cửa sổ Library Available: Tìm và chọn Hibernate.

40

Một phần của tài liệu xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate (Trang 37 - 42)

Tải bản đầy đủ (PDF)

(85 trang)