ไฮเบอร์เนตจำเป็นต้องทราบล่วงหน้า - จะค้นหาข้อมูลการแมปที่กำหนดว่าคลาส Java ของคุณเกี่ยวข้องกับตารางฐานข้อมูลอย่างไร ไฮเบอร์เนตยังต้องการชุดการตั้งค่าคอนฟิกที่เกี่ยวข้องกับฐานข้อมูลและพารามิเตอร์อื่น ๆ ที่เกี่ยวข้อง ข้อมูลดังกล่าวทั้งหมดมักจัดให้เป็นไฟล์คุณสมบัติ Java มาตรฐานที่เรียกว่าhibernate.propertiesหรือเป็นไฟล์ XML ชื่อ hibernate.cfg.xml.
ฉันจะพิจารณาไฟล์ที่จัดรูปแบบ XML hibernate.cfg.xmlเพื่อระบุคุณสมบัติไฮเบอร์เนตที่จำเป็นในตัวอย่างของฉัน คุณสมบัติส่วนใหญ่ใช้ค่าดีฟอลต์และไม่จำเป็นต้องระบุไว้ในไฟล์คุณสมบัติเว้นแต่ว่าจำเป็นจริงๆ ไฟล์นี้ถูกเก็บไว้ในไดเร็กทอรีรากของคลาสพา ธ ของแอปพลิเคชันของคุณ
คุณสมบัติไฮเบอร์เนต
ต่อไปนี้เป็นรายการคุณสมบัติที่สำคัญคุณจะต้องกำหนดค่าสำหรับฐานข้อมูลในสถานการณ์แบบสแตนด์อโลน -
| ซีเนียร์ |
คุณสมบัติและคำอธิบาย |
| 1 |
hibernate.dialect คุณสมบัตินี้ทำให้ Hibernate สร้าง SQL ที่เหมาะสมสำหรับฐานข้อมูลที่เลือก |
| 2 |
hibernate.connection.driver_class คลาสไดรเวอร์ JDBC |
| 3 |
hibernate.connection.url JDBC URL ไปยังอินสแตนซ์ฐานข้อมูล |
| 4 |
hibernate.connection.username ชื่อผู้ใช้ฐานข้อมูล |
| 5 |
hibernate.connection.password รหัสผ่านฐานข้อมูล |
| 6 |
hibernate.connection.pool_size จำกัด จำนวนการเชื่อมต่อที่รออยู่ในกลุ่มการเชื่อมต่อฐานข้อมูลไฮเบอร์เนต |
| 7 |
hibernate.connection.autocommit อนุญาตให้ใช้โหมด autocommit สำหรับการเชื่อมต่อ JDBC |
หากคุณใช้ฐานข้อมูลร่วมกับแอ็พพลิเคชันเซิร์ฟเวอร์และ JNDI คุณจะต้องกำหนดค่าคุณสมบัติต่อไปนี้ -
| ซีเนียร์ |
คุณสมบัติและคำอธิบาย |
| 1 |
hibernate.connection.datasource ชื่อ JNDI ที่กำหนดในบริบทแอ็พพลิเคชันเซิร์ฟเวอร์ซึ่งคุณกำลังใช้สำหรับแอ็พพลิเคชัน |
| 2 |
hibernate.jndi.class คลาส InitialContext สำหรับ JNDI |
| 3 |
hibernate.jndi.<JNDIpropertyname> ผ่านคุณสมบัติ JNDI ใด ๆ ที่คุณชอบไป JNDI InitialContext |
| 4 |
hibernate.jndi.url ระบุ URL สำหรับ JNDI |
| 5 |
hibernate.connection.username ชื่อผู้ใช้ฐานข้อมูล |
| 6 |
hibernate.connection.password รหัสผ่านฐานข้อมูล |
ไฮเบอร์เนตด้วยฐานข้อมูล MySQL
MySQL เป็นระบบฐานข้อมูลแบบโอเพนซอร์สที่ได้รับความนิยมมากที่สุดในปัจจุบัน ให้เราสร้างhibernate.cfg.xmlไฟล์การกำหนดค่าและวางไว้ในรูทของ classpath ของแอปพลิเคชันของคุณ คุณจะต้องแน่ใจว่าคุณมีtestdb ฐานข้อมูลที่มีอยู่ในฐานข้อมูล MySQL ของคุณและคุณมีผู้ใช้ test สามารถเข้าถึงฐานข้อมูลได้
ไฟล์คอนฟิกูเรชัน XML ต้องเป็นไปตาม Hibernate 3 Configuration DTD ซึ่งมีอยู่ที่ 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>
ไฟล์การกำหนดค่าข้างต้นประกอบด้วย <mapping> แท็กซึ่งเกี่ยวข้องกับไฟล์ hibernatemapping และเราจะเห็นในบทถัดไปว่าไฟล์การแมปไฮเบอร์เนตคืออะไรและเราใช้มันอย่างไรและทำไม?
ต่อไปนี้เป็นรายการประเภทคุณสมบัติของฐานข้อมูลที่สำคัญต่างๆ -
| ซีเนียร์ |
ฐานข้อมูลและภาษาถิ่น |
| 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 |
| 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 |