Hibernate

来源:互联网 发布:网络大电影排行榜 今日 编辑:程序博客网 时间:2024/06/05 21:54

    1、dynamic-insert =“false” 动态插入:默认没有给值的字段也会出现在sql语句中;改为true就不会出现了。

2、dynamic-update=“false”动态修改:默认没修改的字段也会出现在sql语句中。

3、unsave-value=“0”:告诉数据库当id的值是0时不保存,当成null处理。当主键需要自己给定值的时候

4、access=“field”:直接操作对象的属性,不通过get,set方法;违背了java的封装性。(不建议使用)

二、主键在数据库表中的生成策略

<id name="id"  column="id">

<generator class=“increment”>

1、increment:由数据库生成,怎么生成?从数据库中查询出主键字段上的最大值再加1,执行select语句,作为新记录的id,主键不会自动增长


<generator class=“identity”>

2、identity:由数据库生成自动增长的主键。执行insert语句

<generator class=“sequence”>

3、sequence:序列,数据库使用序列生成主键的值,mysql不支持


<generator class=“hilo”>
4、hilo:算法,既没有序列,也没有自动增长,使用hilo算法生成主键的值

<generator class=“native">
5、identity、sequence、hilo三选一(其实就是identity)

<generator class=“uuid">
6、id改成String类型;生成32位唯一的字符串

<generator class=“assigned">
7、assigned:自己生成指定id,自然主键


三、映射普通字段和实体类中的属性

type:三种类型的哪一种都可以
          java中的类型:java.lang.String
          数据库的类型:varchar
          hibernate中的类型:string
 <property name="name" column="name" not-null="true"></property> <property name="password" column="password" type="string"></property>

四、使用持久态的好处

hibernate会自动同步持久态对象的变化到数据库表。处于持久态的,hibernate不允许修改id
不用调用update,hibernate会自动把对象的变化同步到数据库表中
0 0