- <!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.connection.url">jdbc:mysql://127.0.0.1/lianxi</property> -
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> -
<property name="hibernate.connection.username">root</property> -
<property name="hibernate.connection.password">root</property> -
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> -
<property name="hibernate.show_sql">true</property> -
<property name="hibernate.hbm2ddl.auto">update</property> -
-
<mapping resource="com/bjsxt/crm/model/User.hbm.xml"/> -
<mapping resource="com/bjsxt/crm/model/ContactPerson.hbm.xml"/> -
<mapping resource="com/bjsxt/crm/model/Customer.hbm.xml"/> -
<mapping resource="com/bjsxt/crm/model/DataDictionary.hbm.xml"/> -
</session-factory> - </hibernate-configuration>
上面是hibernate.cfg.xml 的配置,需要注意的就是把实体映射类的配置文件都引用过来。
还有提点需要理解的是 hibernate.hbm2dll.auto的配置:
validate
create
create-drop
update
在本机开发调试初始化数据的时候可以选择create、update等。
但是网站发布正式版本的时候,对数据库现有的数据或表结构进行自动的更新是很危险的。 此时此刻应该由DBA同志通过手工的方式进行后台的数据库操作。
hibernate.hbm2ddl.auto的值建议是“none”或“validate”。“validate”应该是最好的选择:这样spring在加载之初,如果model层和数据库表结构不同,就会报错,这样有助于技术运维预先发现问题。
有了自己的实体类和相应的映射文件后,就可可以通过下面的这个方法由实体类生成数据库的表了,代买如下;
- import
org.hibernate.cfg.Configuration; - import
org.hibernate.tool.hbm2ddl.SchemaExport; - public
class ExportDB { -
public static void main(String[] args) { -
-
//读取hibernate.cfg.xml文件 -
Configuration cfg = new Configuration().configure(); -
-
SchemaExport export = new SchemaExport(cfg); -
-
export.create(true, true); -
} - }
下面是一些数据库方言,在这里列出方便查找使用
//参照表
DB2 | org.hibernate.dialect.DB2Dialect |
DB2 AS/400 | org.hibernate.dialect.DB2400Dialect |
DB2 OS390 | org.hibernate.dialect.DB2390Dialect |
PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
MySQL | org.hibernate.dialect.MySQLDialect |
MySQL with InnoDB | org.hibernate.dialect.MySQLInnoDBDialect |
MySQL with MyISAM | org.hibernate.dialect.MySQLMyISAMDialect |
Oracle (any version) | org.hibernate.dialect.OracleDialect |
Oracle 9i/10g | org.hibernate.dialect.Oracle9Dialect |
Sybase | org.hibernate.dialect.SybaseDialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |
Microsoft SQL Server | org.hibernate.dialect.SQLServerDialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Informix | org.hibernate.dialect.InformixDialect |
HypersonicSQL | org.hibernate.dialect.HSQLDialect |
Ingres | org.hibernate.dialect.IngresDialect |
Progress | org.hibernate.dialect.ProgressDialect |
Mckoi SQL | org.hibernate.dialect.MckoiDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Pointbase | org.hibernate.dialect.PointbaseDialect |
FrontBase | org.hibernate.dialect.FrontbaseDialect |
Firebird | org.hibernate.dialect.FirebirdDialect |