hibernate.cfg.xml---hibernate配置文件,基本版

来源:互联网 发布:java光标变粗 编辑:程序博客网 时间:2024/04/30 03:56

使用hibernate开发时,hibernate.cfg.xml是必要的配置文件,且必须放在src文件夹下,具体代码如下:
<!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.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=testDB</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<!-- 如果表已经存在,则不创建,否则创建-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 是否在控制台打印sql语句,true打印,false不打印 -->
<property name="hibernate.show_sql">true</property>
<!-- 将sql语句格式化再打印 ,格式化了反而不好阅读
<property name="hibernate.format_sql">true</property>-->

<mapping resource="entity/User.hbn.xml" />
</session-factory>
</hibernate-configuration>




说明:前面5点配置,上一篇已经说过了,在这里就不赘述了。
(1)hibernate.hbm2ddl.auto:对表做如下操作:
  a、如果表不存在,则创建;
  b、如果表已经存在,且表的字段发生了改变,如在实体类中增加了属性,则会在原有表的基础上增加表字段,原有的数据不会消失,只不过新增的字段的值为null。
  c、如果表已经存在,且表没有发生任何变化,则不会做任何操作。
注意:该动作是在创建sessionFactory对象时发生的。


(2)hibernate.show_sql:在控制台是否打印sql语句,true则打印,false则不打印。在项目开发过程中,建议设置为true,因为一方面查看sql语句可以检查自己写的代码是否有错,另一方面也可以帮助自己调优(和数据库打交道的次数是否过多,过多则要减少访问数据库的次数,方法有很多,比如采用抓取策略、二级缓存等等,看具体情况而定)。如果项目已经开发完成,则建议设置为false,因为在控制台打印sql语句,或多或少会消耗资源。


(3)hibernate.format_sql:是否将sql语句格式化后才在控制台打印,该配置必须和hibernate.show_sql一起使用,否则是没有任何意义的。个人觉得格式化了,sql语句反而不好看,所以在这里把它注释了,个人习惯问题吧。


(4)<mapping resource="entity/User.hbn.xml" />:将实体类的映射文件加载进来,其中resource是映射文件的路径。如果映射文件放在了某个文件夹下(一般和实体类放在同一个文件夹),那么路径就要加上对应的文件夹,但是路径不能以“/”开头,否则报错。要导入多个映射文件,就要写多条该语句,一条语句对应一个映射文件。


本例的配置文件是最基本的,不过也满足了大部分的开发需求,如果要使用二级缓存等,请自行去查阅资料把。

1 0
原创粉丝点击