Hibernate - Cấu hình
Hibernate yêu cầu bạn phải biết trước - nơi tìm thông tin ánh xạ xác định cách các lớp Java của bạn liên quan đến các bảng cơ sở dữ liệu. Hibernate cũng yêu cầu một bộ cài đặt cấu hình liên quan đến cơ sở dữ liệu và các thông số liên quan khác. Tất cả thông tin như vậy thường được cung cấp dưới dạng tệp thuộc tính Java tiêu chuẩn được gọi làhibernate.propertieshoặc dưới dạng tệp XML có tên hibernate.cfg.xml.
Tôi sẽ xem xét tệp định dạng XML hibernate.cfg.xmlđể chỉ định các thuộc tính Hibernate bắt buộc trong các ví dụ của tôi. 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 tệp thuộc tính trừ khi nó thực sự được yêu cầu. Tệp này được giữ trong thư mục gốc của classpath của ứng dụng của bạn.
Thuộc tính Hibernate
Sau đây là danh sách các thuộc tính quan trọng, bạn sẽ được yêu cầu cấu hình cho cơ sở dữ liệu trong tình huống độc lập -
Sr.No. | Thuộc tính & Mô tả |
---|---|
1 | hibernate.dialect Thuộc tính này làm cho Hibernate tạo SQL thích hợp cho cơ sở dữ liệu đã chọn. |
2 | hibernate.connection.driver_class Lớp trình điều khiển JDBC. |
3 | hibernate.connection.url URL JDBC đến phiên bản cơ sở dữ liệu. |
4 | hibernate.connection.username Tên người dùng cơ sở dữ liệu. |
5 | hibernate.connection.password Mật khẩu cơ sở dữ liệu. |
6 | hibernate.connection.pool_size Giới hạn số lượng kết nối đang chờ trong nhóm kết nối cơ sở dữ liệu Hibernate. |
7 | hibernate.connection.autocommit Cho phép chế độ tự động gửi được sử dụng cho kết nối JDBC. |
Nếu bạn đang sử dụng cơ sở dữ liệu cùng với máy chủ ứng dụng và JNDI, thì bạn sẽ phải định cấu hình các thuộc tính sau:
Sr.No. | Thuộc tính & Mô tả |
---|---|
1 | hibernate.connection.datasource Tên JNDI được xác định 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> Chuyển bất kỳ thuộc tính JNDI nào bạn thích vào JNDI InitialContext . |
4 | hibernate.jndi.url Cung cấp URL cho JNDI. |
5 | hibernate.connection.username Tên người dùng cơ sở dữ liệu. |
6 | hibernate.connection.password Mật khẩu cơ sở dữ liệu. |
Ngủ đông với Cơ sở dữ liệu MySQL
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. Hãy để chúng tôi tạo rahibernate.cfg.xmltệp cấu hình và đặt nó vào thư mục gốc của classpath của ứng dụng của bạn. Bạn sẽ phải đảm bảo rằng bạn cótestdb cơ sở dữ liệu có sẵn trong cơ sở dữ liệu MySQL của bạn và bạn có một người dùng test có sẵn để truy cập cơ sở dữ liệu.
Tệp cấu hình XML phải tuân theo DTD Cấu hình Hibernate 3, có sẵn tại 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>
<!-- Assume test is the database name -->
<property name = "hibernate.connection.url">
jdbc:mysql://localhost/test
</property>
<property name = "hibernate.connection.username">
root
</property>
<property name = "hibernate.connection.password">
root123
</property>
<!-- List of XML mapping files -->
<mapping resource = "Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Tệp cấu hình trên bao gồm <mapping> , liên quan đến tệp ánh xạ ngủ đông và chúng ta sẽ xem trong chương tiếp theo chính xác tệp ánh xạ ngủ đông là gì và cách thức và lý do chúng ta sử dụng nó?
Sau đây là danh sách các cơ sở dữ liệu quan trọng kiểu thuộc tính phương ngữ -
Sr.No. | Thuộc tính Cơ sở dữ liệu & Phương ngữ |
---|---|
1 | DB2 org.hibernate.dialect.DB2Dialect |
2 | HSQLDB org.hibernate.dialect.HSQLDialect |
3 | HypersonicSQL org.hibernate.dialect.HSQLDialect |
4 | Informix org.hibernate.dialect.InformixDialect |
5 | Ingres org.hibernate.dialect.IngresDialect |
6 | Interbase org.hibernate.dialect.InterbaseDialect |
7 | Microsoft SQL Server 2000 org.hibernate.dialect.SQLServerDialect |
số 8 | Microsoft SQL Server 2005 org.hibernate.dialect.SQLServer2005Dialect |
9 | Microsoft SQL Server 2008 org.hibernate.dialect.SQLServer2008Dialect |
10 | MySQL org.hibernate.dialect.MySQLDialect |
11 | Oracle (any version) org.hibernate.dialect.OracleDialect |
12 | Oracle 11g org.hibernate.dialect.Oracle10gDialect |
13 | Oracle 10g org.hibernate.dialect.Oracle10gDialect |
14 | Oracle 9i org.hibernate.dialect.Oracle9iDialect |
15 | PostgreSQL org.hibernate.dialect.PostgreSQLDialect |
16 | Progress org.hibernate.dialect.ProgressDialect |
17 | SAP DB org.hibernate.dialect.SAPDBDialect |
18 | Sybase org.hibernate.dialect.SybaseDialect |
19 | Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect |