你的位置:首页 > Java教程

[Java教程]Hibernate configuration files


 

Hibernate 中配置主要分为两种:

1.包含Hibernate于数据库的基本连接信息,在hibernate工作的初始阶段,这些信息先后被加载到Configuration和SessionFactory实例。

Hibernate.properties

由于该文件没有提供Hibernate的映射文件方式所以需要利用addResource()方法添加映射文件,利用addClass()直接添加持久化类

注解:可以利用Hibernate.properties连接数据库,利用Hibernate.cfg.

private static void init(){   Configuration cfg = new Configuration();   try{     properties p = new Properties();     p.load(HibernateSessionFactory.class.getResourceAsStream("hibernate.properties"));     cfg.setProperties(p);    }catch(IOException e){     e.printStackTrace();     throw new RunTimeException("fail load the hibernate.properties");    }     cfg.configure("hibernate.cfg.);  }        

2.包含了Hibernate的基本映射信息,即系统中bean对象与表的关联关系,Hibernate工作的初始阶段,这些信息通过Hibernate.cfg.

Hibernate.cfg.

<!--标准的--><??><!-- 表明解析本--><!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.dialect">org.hibernate.dialect.MySQLDialect</property>    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>    <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306:MyProjectForStudy</property>    <property name="hibernate.connection.username">root</property>    <property name="hibernate.connection.password">password</property>  <!-- 数据库连接池大小 -->    <property name="hibernate.connection.pool.size">20</property>  <!-- 是否在后台显示Hibernate用的的SQL语句,开发时设置ture ,便于差错,程序运行时可以在Eclipse的控制台显示Hibernate执行的SQL语句,项目部署后可设置false,提高运行效率 -->    <property name="hibernate.show_sql">true</property>  <!-- jdbc.fetch_size是指Hibernate每次从数据库中取出并放到JDBC的statement中的记录条数,fetch size 越大,读的次数越少,数度越快 -->    <property name="jdbc.fetch_size">50</property>  <!-- jdbc.batch_batch是指Hibernate批量插入,删除和更新是每次操作的记录数,值越大,批量操作向数据库发送的SQL次数越少,速度就越快,同样消耗内存就越大 -->    <property name="jdbc.batch_size">23</property>    <!--jdbc.use_scrollable_resultset是否允许Hibernate用JDBC的可滚动的结果集。对分页的结果集。对分页时的设置非常有帮助-->     <property name="jdbc.use_scrollable_resultset">false</property>  <!--connection.useUnicode连接数据库时是否使用Unicode编码-->     <property name="Connection.useUnicode">true</property>   <!--connection.characterEncoding连接数据库时数据的传输字符集编码方式,最好设置为gbk,用gb2312有的字符不全-->     <property name="connection.characterEncoding">gbk</property>   <!-- 是否自动创建数据库表,主要有几个值:  validate:当sessionFactory创建时,自动验证或schema定义导入数据库  create:每次启动都drop掉原来的schema ,创建新的。  create-drop:当sessionFactory明确关闭时,drop掉schema  update:如果没有schema就创建,有就更新   -->      <property name="hbm2ddl.auto">create</property>  <!-- 配置此处 sessionFactory.getCurrentSession()可以完成一系列的工作,当调用时,   hibernate将session绑定到当前线程,事务结束后,hibernate   将session从当前线程中释放,并且关闭session。当再次调用getCurrentSession   时,将得到一个新的session,并重新开始这一系列工作。-->     <property name="current_session_context_class">thread</property>      <mapping source=""/>  </session-factory></hibernate-configuration>