在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;
........}