Hibernate中的不同主键生成策略下flush()方法的妙用

依旧让代码站出来说话。。这是一个Java Project。。

首先是位于src下的Hibernate核心配置文件hibernate.cfg.xml

  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5. <hibernate-configuration>  
  6.     <session-factory>  
  7.         <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  
  8.         <property name="connection.url">jdbc:mysql://localhost:3306/jadyer?characterEncoding=UTF-8</property>  
  9.         <property name="connection.username">root</property>  
  10.         <property name="connection.password">jadyer</property>  
  11.         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
  12.           
  13.         <property name="hibernate.show_sql">true</property>  
  14.         <property name="hibernate.format_sql">true</property>  
  15.           
  16.         <!-- 批量读取数据。建议值50。需要JDBC和底层数据库的支持 -->  
  17.         <property name="hibernate.jdbc.fetch_size">50</property>           
  18.         <!-- 批量更新数据。建议值30 -->  
  19.         <property name="hibernate.jdbc.batch_size">30</property>  
  20.         <!-- 配置完这两个属性后,当我们向数据库提交SQL时,就不会一次性把全部数据读入内存 -->  
  21.         <!-- 而是按照一定的数量来批量读取相应的数据,但最终是否会生效还取决于底层数据库的支持 -->  
  22.         <!-- 有些数据库就不支持这些参数。其中Oracle和SQLServer都支持,而MySQL貌似就不支持 -->  
  23.           
  24.          <!-- 也可以通过以下方式编写映射文件 -->  
  25.         <mapping resource="com/jadyer/hibernate/all.hbm.xml"/>  
  26.         <!--   
  27.         <mapping resource="com/jadyer/hibernate/User11.hbm.xml"/>  
  28.         <mapping resource="com/jadyer/hibernate/User22.hbm.xml"/>  
  29.         <mapping resource="com/jadyer/hibernate/User33.hbm.xml"/>  
  30.          -->  
  31.     </session-factory>  
  32. </hibernate-configuration>  

接下来是我们用到的三个实体类

  1. package com.jadyer.hibernate;  
  2. import java.util.Date;  
  3. public class User11 {  
  4.     private String id;  
  5.     private String name;  
  6.     private String password;  
  7.     private Date createTime;  
  8.     /*--三个属性对应的setter和getter略--*/  
  9. }  
  10.   
  11.   
  12. package com.jadyer.hibernate;  
  13. import java.util.Date;  
  14. public class User22 {  
  15.     private int id;  
  16.     private String name;  
  17.     private String password;  
  18.     private Date createTime;  
  19.     /*--三个属性对应的setter和getter略--*/  
  20. }  
  21.   
  22.   
  23. package com.jadyer.hibernate;  
  24. import java.util.Date;  
  25. public class User33 {  
  26.     private String id;  
  27.     private String name;  
  28.     private String password;  
  29.     private Date createTime;  
  30.     /*--三个属性对应的setter和getter略--*/  
  31. }  

相关推荐