关闭

Mybatis generator 自动生成代码时 ,insert如何返回主键值

6100人阅读 评论(0) 收藏 举报
分类:

mvn mybatis-generator:generate


如果要让generator自动添加该功能,可以如下配置:


<!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名;不需要生成Example类 -->
        <table schema="" tableName="ACT_SecurityBlockLog" domainObjectName="BlockLog"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>

        </table>


或者手动增加:

<insert id="insert" parameterType="Activity" keyProperty="id"
     keyColumn="ID" useGeneratedKeys="true"
>


主键值有  对象.getId()获得

方法只返回成功影响的行数:1


在insert里面加入selectKey标签就可以了. 一般都是返回的int类型.对应数据库是自增长字段.

要注意的是: ibatis会直接返回int值. Mybatis则把int值包装在参数对象里面.

public int insert(User user) {

//ibatis方式.

int result = UserMapper.insert(user);

return result;

//Mybatis方式

user = UserMapper.insert(user);

return user.getId();

}

还要注意的是数据库类型不一样,生成ID的策略也不一样. 可以对selectKey添加属性(名字忘记了), pre---先生成ID. post---后生成ID. default是post.


另一种返回主键值得方法:

<insert id="insertSelective" parameterType="xxxx" >
    <selectKey resultType="java.lang.Integer" keyProperty="ID" order="AFTER" >
      SELECT LAST_INSERT_ID()
    </selectKey>

    insert into XXXX

最终结果是 mapper方法返回值为主键ID,同时对象ID值也为主键ID

0
0
查看评论

mybatis insert 返回主键

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。   方法:在mapper中指定keyProperty属性,示例如下: <insert id="insert" parameterType="com.cl.med...
  • clypm
  • clypm
  • 2016-07-20 09:58
  • 1478

MyBatis在insert插入操作时返回主键ID的配置

很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键。 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数。。。 接下来,我们看看MyBatis如何在使用MySQL和Ora...
  • tomcat_2014
  • tomcat_2014
  • 2016-03-12 16:14
  • 2326

Mybatis insert 返回主键

我们在使用mysql插入数据的时候,通常会有这样一个需求: 当表的主键id是自增字段的时候,会想要获得插入的id值用以下一个插入操作。 mybatis实际上已经为我们提供了这种功能:以下是我实现订单插入时获取id的实例 主要还是在mapper.xml文件中的insert标签中加入(useGen...
  • q5841818
  • q5841818
  • 2015-09-05 23:16
  • 2316

MyBatis insert操作返回主键

在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如...
  • jbgtwang
  • jbgtwang
  • 2012-02-29 20:52
  • 178508

mybatis 插入一条数据返回相应数据ID

mybatis 原来一般插入一条数据就这样 <insert id="insertLatLong" parameterType="map"> INSERT INTO gyLatLong ( userID, longitude, latitude)...
  • kongbaidepao
  • kongbaidepao
  • 2015-07-15 18:02
  • 7095

MyBatis insert返回主键不成功

MyBatis insert返回主键不成功 说明:Mybaits的insert/update一般默认返回记录的更新条数,业务需要在保存完实体(insert)之后需要返回主键值。 官网说明Mybaits官方文档 * 这里我以Mysql为例。<insert id="insertAu...
  • nerdlan
  • nerdlan
  • 2017-04-01 16:31
  • 4028

MyBatis插入数据返回插入对象的主键

方法:在mapper中指定keyProperty属性,示例如下:  主要: useGeneratedKeys="true" keyProperty="userId" Xml代码   inser...
  • qq_29611427
  • qq_29611427
  • 2017-12-22 14:26
  • 241

mybatis+mysql insert添加数据后返回数据主键id

1.修改mybatis xml       insert into test (name) values (#{name})   useGeneratedKeys="true" :设置是否使用JDBC的getGenereatedKeys方...
  • shuaipu813
  • shuaipu813
  • 2016-10-08 13:44
  • 10351

MyBatis:Insert操作详解(返回主键、批量插入)

一、前言                                      数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。   二、 insert元素 属性详...
  • kingice1014
  • kingice1014
  • 2016-06-13 15:58
  • 1678

MyBatis insert实体返回主键

一、insert  属性详解    parameterType ,入参的全限定类名或类型别名    keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的...
  • zhhandcsdn
  • zhhandcsdn
  • 2017-03-16 11:39
  • 3372
    个人资料
    • 访问:9410094次
    • 积分:78983
    • 等级:
    • 排名:第21名
    • 原创:264篇
    • 转载:2910篇
    • 译文:3篇
    • 评论:805条
    文章分类
    最新评论