1:主配置文件主要分为三部分:
注意:一般状况下,一个session-factory节点表明一个数据库;
1.1:第一部分
数据库链接部分,注意"hibernate.connection.driver_class"中间的 _;
1.2:第二部分
其余相关配置,包含打印sql语句,格式化sql语句,建立数据表或者更新数据表等等
1.3:第三部分
加载全部的映射;html
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 第一部分:数据链接配置 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate_test</property> <property name="connection.username">json</property> <property name="connection.password">123456</property> <!-- 第二部分:其余相关配置 --> <!-- 数据库方言 - 配置hibernate方言,可针对特定的数据库优化。 --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 是否在运行时候sql语句输出到控制台,编码阶段便于测试的。(默认设置为true)--> <property name="show_sql">true</property> <!-- 输出在控制台sql语句是否进行格式化,便于阅读。(默认设置为true) --> <property name="format_sql">true</property> <!-- 可帮助由java代码生成数据库脚本,进而生成具体表结构。如:create/update/create-drop/validate create: 每次都从新建表,原来的表删除,同时数据所有清楚从新插入数据。(每次加载hibernate,从新建立数据库表结构,这就是致使数据库表数据丢失的缘由。) create-drop: 每次在建立sessionFactory时执行建立表,当调用sessionFactory的close方法的时候,删除表 (在实际项目中不用) update: 只是根据映射文件去和数据库中的表对应起来,若是不一致,就更新表的结构 validate: 加载hibernate时,验证建立数据库表结构,若是是不一样的话则不建立表。 PS: 1.请慎重使用 hbm2ddl.auto 此参数,不必就不要随便用。 2.若是发现数据库表丢失,请检查hibernate.hbm2ddl.auto的配置 --> <property name="hbm2ddl.auto">update</property> <!-- 第三部分:加载全部的映射(*.hbm.xml) --> <mapping resource="com/demo/pojo/User.hbm.xml"></mapping> </session-factory> </hibernate-configuration>
PS:源码地址 https://github.com/JsonShare/hibernate-demojava
PS:原文地址 http://www.cnblogs.com/JsonShare/p/8647559.htmlmysql