天天看点

MyBatis--------生成主键

一、在MySQL数据库中的写法

userGeneratedKeys="true"  keyProperty="id",这样就能把我们插入的实体的主键id赋值。下次使用的时候,再调用  对象.getId()就能获取到刚才生成的主键。

        注意点:1.实体的id属性需要有setId()方法。 

                      2.数据库中的表主键设置为 auto_increment

        实例:

<insert id="insertAccount" parameterType="com.ssi.domains.secutity.entity.Account" 
            useGeneratedKeys="true" keyProperty="id">
        INSERT INTO t_account(nickname,loginName,password,idCard,cellPhone,enabled)
        VALUE (#{nickname},#{loginName},#{password},#{idCard},#{cellPhone},#{enabled})
    </insert>      

        在这个例子里面,被插入的Account对象在构造的时候Long id 属性为null。在插入数据库完成后,作为参数的account对象的Long id属性被赋予为数据库中的记录的主键的值。

二、在Oracle数据库中的写法

        我们知道,mysql优化里面有一条:为每一张表都设置一个int类型的主键,它能够自增,方便分页和排序。

<insert id="insert" parameterType="MyAccount">
        <selectKey keyProperty="id" resultType="long" order="BEFORE">
            select SEQ_EXAMINEE.nextval from dual    
        </selectKey>
        insert into T_Register(id,idCard,cellPhone,password,name)
        values(#{id},#{idCard},#{cellPhone},#{password},#{name})
</insert>      

更多MyBatis使用经验