MyBatis插入及查询获取自增主键二选一的方法

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,后两种都不是,因此推荐使用第一种写法。

时间: 2024-10-10 18:14:37

MyBatis插入及查询获取自增主键二选一的方法的相关文章

mybatis框架(6)---mybatis插入数据后获取自增主键

mybatis插入数据后获取自增主键 首先理解这就话的意思:就是在往数据库表中插入一条数据的同时,返回该条数据在数据库表中的自增主键值. 有什么用呢,举个例子: 你编辑一条新闻,同时需要给该新闻打上标签(可以一个或者多个:比如:女性,爱,钱等等),然后存储到数据库中.怎么存,肯定涉及到三张表,新闻表,标签表,新闻标签id关联表 新闻表插入数据简单,标签表插入数据简单.那新闻标签表呢,如何关联,那是不是需要新闻表和标签表插入数据的时候,返回它们的主键Id然后再存储到新闻标签表中. 这种场景还是蛮常

mybatis新增数据后获取自增主键

mybatis对应mysql <insert id="insert" parameterType="com.timestech.wsgk.web.model.SysOrg" useGeneratedKeys="true"> --------------即可获取service中实体类的自增ID insert into BJLT.SYS_ORG (ID, NAME, P_ID, P_NAME, REMARK, LEVELS, STATUS

MyBatis 插入时候获取自增主键(1:写sql。2:注解@generatedvalue)

MyBatis 插入时候获取自增主键 方法有二 方法1: <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id">        insert into person(name,pswd) values(#{name},#{pswd})    </insert> 方法2: <insert

MyBatis插入时候获取自增主键方法

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&

mybatis执行insert后马上能获取自增主键的语句写法

<!--keyColumn keyProperty useGeneratedKeys 用于在插入数据后,能直接使用user.getId()获取主键--> <insert id="insert" keyColumn="Id" keyProperty="id" parameterType="com.chinacarbonal.carboncms.bean.UserRole" useGeneratedKeys=&q

(转)MYSQL获取自增主键【4种方法】

通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_INSERT_ID()函数 通过SQL @@IDENTITY 变量 1. 通过JDBC2.0提供的insertRow()方式 自jdbc2.0以来,可以通过下面的方式执行. [java] view plain copy print? Statement stmt = null; ResultSet rs = null; try { stmt =

mysql 获取自增主键

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: <

SpringJDBC jdbcTemplate获取自增主键

String sql = "insert into notice_type(typeName,configType,state,creatorID,corpID,createTime) values (?,?,?,?,?,?)"; Object[] objs = new Object[]{ noticeType.getTypename(), noticeType.getConfigtype(), noticeType.getState(), noticeType.getCreatori

MySQL数据库自增主键归零的几种方法

MySQL自增主键归零的方法: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数: truncate table table_name; 2.  当用户没有truncate的权限时且曾经的数据不需要时: 1)删除原有主键: ALTER TABLE 'table_name' DROP 'id'; 2)添加新主键: ALTER TABLE 'table_name' ADD 'id' int(11) NOT NULL FIRST; 3)设置新主键: ALTER TABLE