Hibernate学习笔记——两种配置方式

在Hibernate配置文件中加入

控制台输出执行的sql语句<property name="show_sql">true</property>
        在用到Session session = sf.getCurrentSession()加入此句 <property name="current_session_context_class">thread</property>
         <property name="format_sql">true</property>
       ,没有表时候自动创建相应表 <property name="hbm2ddl.auto">update</property>

1)当数据库表的名字、列名与类的名字、类的成员变量不一致

xml方式:table、column
annotation:
    @Table(name="TeacherTable")
    @Column( name="teaName")
2)数据库列和类中的字段不一致
 XML方式:不写某个属性
 annotation:@Transient
3)关于日期类型的映射

  XML方式:在xml配置文件中:默认的数据类型timestamp,可以设置date、time

<property name="birthday" type="time"></property>

  annotation:
    @Temporal(TemporalType.DATE)
4)关于枚举类型
 XML方式:很麻烦
 annotation:
   @Enumerated( EnumType.STRING)
   @Enumerated( EnumType.ORDINAL)
5)ID生成策略
 XML方式:native、uuid、sequence、identity
        <generator class="native"></generator>
 annotation:
   在主键的get方法前加: @GeneratedValue
   如果修改序列的名字:
在类前加
   @SequenceGenerator( name="tea", sequenceName="teacher_seq")
在主键方法前加
  @GeneratedValue(strategy= GenerationType.SEQUENCE, generator="tea")
6)联合主键
XML方式:
   作为主键的类必须可以序列化,在xml文件中添加
  <composite-id name="pk" class="StudentPk">
   <key-property name="id"></key-property>
   <key-property name="name"></key-property>
     </composite-id>

annotation:

@IdClass(DeptPk.class)
public class Dept {
@Id
private int deptNo;
@Id
private String dname;

........}



  


      

你可能感兴趣的:(Hibernate)