Hibernate yêu cầu phải thiết định thông tin các để lớp Java ánh xạ đến các bảng cơ sở dữ liệu. Hibernate cũng yêu cầu một tập hợp các thiết lập cấu hình liên quan đến cơ sở dữ liệu và các tham số liên quan khác. Tất cả các thông tin như vậy thường được cung cấp dưới dạng file thuộc tính Java tiêu chuẩn có tên gọi là hibernate.properties, hoặc dưới dạng file XML có tên hibernate.cfg.xml.
Chúng ta sử dụng file XML hibernate.cfg.xml để chỉ định các thuộc tính Hibernate bắt buộc trong các ví dụ trong các bài học Hibernate. Hầu hết các thuộc tính lấy giá trị mặc định của chúng và không bắt buộc phải chỉ định chúng trong file properties trừ khi nó thực sự là bắt buộc. Tập tin này được lưu trong thư mục gốc của ứng dụng.
Nội dung chính
Các thuộc tính Hibernate
Dưới đây là danh sách các thuộc tính quan trọng mà bạn sẽ cần để cấu hình cho một cơ sở dữ liệu trong một trường hợp standalone:
No. | Các thuộc tính và mô tả |
---|---|
1 | hibernate.dialect Thuộc tính này làm cho Hibernate tạo ra SQL thích hợp cho cơ sở dữ liệu đã chọn. |
2 | hibernate.connection.driver_class
JDBC driver class. |
3 | hibernate.connection.url
JDBC URL của cơ sở dữ liệu. |
4 | hibernate.connection.username
username của cơ sở dữ liệu. |
5 | hibernate.connection.password
password của cơ sở dữ liệu. |
6 | hibernate.connection.pool_size
Giới hạn số kết nối đang chờ trong pool kết nối cơ sở dữ liệu Hibernate. |
7 | hibernate.connection.autocommit
Cho phép chế độ autocommit để được sử dụng cho JDBC connection. |
Nếu bạn đang sử dụng một cơ sở dữ liệu cùng với một máy chủ ứng dụng và JNDI thì bạn phải cấu hình các thuộc tính sau:
No. | Các thuộc tính và mô tả |
---|---|
1 | hibernate.connection.datasource
Tên JNDI được định nghĩa trong ngữ cảnh máy chủ ứng dụng mà bạn đang sử dụng cho ứng dụng. |
2 | hibernate.jndi.class
Lớp InitialContext cho JNDI. |
3 | hibernate.jndi.<JNDIpropertyname>
Truyền bất kỳ thuộc tính JNDI bạn thích tới JNDI InitialContext. |
4 | hibernate.jndi.url
Cung cấp URL cho JNDI. |
5 | hibernate.connection.username
username của cơ sở dữ liệu. |
6 | hibernate.connection.password
password của cơ sở dữ liệu. |
Hibernate với MySQL Database:
MySQL là một trong những hệ thống cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay. Chúng ta hãy tạo file cấu hình hibernate.cfg.xml và đặt nó vào thư mục gốc ứng dụng. Bạn sẽ phải chắc chắn rằng bạn có cơ sở dữ liệu testdb có sẵn trong cơ sở dữ liệu MySQL của bạn.
Tệp cấu hình XML phải phù hợp với DTD cấu hình Hibernate 3, có sẵn ở đây http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd.
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property> <!-- thông tin kết nối đến database --> <property name="hibernate.connection.url"> jdbc:mysql://localhost/testdb </property> <property name="hibernate.connection.username"> root </property> <property name="hibernate.connection.password"> 1234567890 </property> <!-- Danh sách các XML mapping file--> <mapping resource="Employee.hbm.xml"/> </session-factory> </hibernate-configuration>
Các tập tin cấu hình trên đây bao gồm các thẻ <mapping> có liên quan đến file hibernate mapping và chúng ta sẽ tìm hiểu trong bài sau. Sau đây là danh sách các kiểu của cơ sở dữ liệu quan trọng khác:
Database | Dialect Property |
---|---|
DB2 | org.hibernate.dialect.DB2Dialect |
HSQLDB | org.hibernate.dialect.HSQLDialect |
HypersonicSQL | org.hibernate.dialect.HSQLDialect |
Informix | org.hibernate.dialect.InformixDialect |
Ingres | org.hibernate.dialect.IngresDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Microsoft SQL Server 2000 | org.hibernate.dialect.SQLServerDialect |
Microsoft SQL Server 2005 | org.hibernate.dialect.SQLServer2005Dialect |
Microsoft SQL Server 2008 | org.hibernate.dialect.SQLServer2008Dialect |
MySQL | org.hibernate.dialect.MySQLDialect |
Oracle (any version) | org.hibernate.dialect.OracleDialect |
Oracle 11g | org.hibernate.dialect.Oracle10gDialect |
Oracle 10g | org.hibernate.dialect.Oracle10gDialect |
Oracle 9i | org.hibernate.dialect.Oracle9iDialect |
PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
Progress | org.hibernate.dialect.ProgressDialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Sybase | org.hibernate.dialect.SybaseDialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |