1:主配置文件主要分为三部分:
注意:通常情况下,一个session-factory节点代表一个数据库;
1.1:第一部分
数据库连接部分,注意"hibernate.connection.driver_class"中间的 _;
1.2:第二部分
其他相关配置,包含打印sql语句,格式化sql语句,创建数据表或者更新数据表等等
1.3:第三部分
加载所有的映射;
<!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:原文地址 http://www.cnblogs.com/JsonShare/p/8647559.html
Hibernate学习(2)- ??hibernate.cfg.xml详解
原文地址:https://www.cnblogs.com/JsonShare/p/8647559.html