MyBatis 3.2.6插入时候获取自增主键方法有二种

 

以MySQL5.5为例:

 

方法1:

    <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id">
        insert into person(name,pswd) values(#{name},#{pswd})
    </insert>

 

方法2:

    <insert id="insert" parameterType="Person">
        <selectKey keyProperty="id" resultType="long">
            select LAST_INSERT_ID()
        </selectKey>
        insert into person(name,pswd) values(#{name},#{pswd})
    </insert>



插入前实体id属性为0;

插入后实体id属性为保存后自增的id;

各取所好,第二种方法更为稳定; 


************************************************


MyBatis 3.2.6 经过测试,给出三种可靠可用的写法:


select * from user where name  like "%"#{name}"%" 


select * from user where name  like '%'||#{name}||'%'


select * from user where name  like '%${name}%' 


三种写法对比后,第一种属于预编译SQL,后两种都不是,因此推荐使用第一种写法。