美文网首页
mybatis设置返回自增主键失败原因

mybatis设置返回自增主键失败原因

作者: 苏小小北 | 来源:发表于2018-11-09 09:32 被阅读0次

mybatis 新增记录后返回自增主键id方式,即使添加了配置,发现userMapper.insert(user)永远返回1,这是因为insert返回只能返回影响行数,而主键的id并不是通过这种方式返回的,主键直接注入到了user对象中,通过
user.getId()就可以获得自增主键了

下面是配置方式

1.采用xml配置sql

添加KeyProperty="id", useGeneratedKeys="true"

<insert id="insert" keyProperty="id" useGeneratedKeys="true" 
   parameterType="com.demo.domain.User">
         insert into User_t(name,age,addr) values(#{name},#{age},#{addr})
</insert>

int i = userMapper.insert(user), i 表示userMapper.insert返回的依旧是sql语句影响的行数,为1。
返回自增主键的意思是,int uid = user.getUid()在没有设置keyProperty="id" useGeneratedKeys="true" 的情况下,user的uid属性为空,设置后mybatis自动将uid注入到user对象中,想要获得uid只要这样就行了

int uid = user.getUid();

2.采用注解的sql方式

添加Options注解:
@Options(useGeneratedKeys = true, keyProperty="uid", keyColumn = "uid")

    @Options(useGeneratedKeys = true, keyProperty="uid", keyColumn = "uid")
    @InsertProvider(type=UserBaseSqlProvider.class, method="insertSelective")
    int insertSelective(UserBase record);

相关文章

  • mybatis设置返回自增主键失败原因

    mybatis 新增记录后返回自增主键id方式,即使添加了配置,发现userMapper.insert(user)...

  • MyBatis、MyBatis-plus将主键返回的问题

    对于MySQL的自增主键 非自增主键(UUID) 不管Mybatis-plus设置了IdType.UUID还是没有...

  • MyBatis-Plus主键ID生成策略

    MyBatis-Plus默认实现5种主键生成策略,分别是: AUTO,配合数据库设置自增主键,可以实现主键的自动增...

  • mybatis——动态sql笔记

    1.返回自增主键 useGeneratedKeys="true" keyProperty="bid"在标签上设置这...

  • MyBatis新增操作返回自增主键

    MyBatis新增操作设置完获取新增主键后,该框架是把主键值放到了参数对象上,获取主键值需要用参数对象去get主键...

  • mybatis 返回新增自增主键id

    场景: 当我们设计数据库表主键id为自增主键时,通过mybatis新增插入一条数据,我们期望返回当前插入数据的主键...

  • MyBatis

    准备 依赖 log4j.properties SqlMapConfig.xml Mapper实现自增主键返回 设置...

  • mybatis主键自增

    我们在用mybatis进行插入的时候需要返回一个自增的主键。这个文章分为以下几步1.建表 这个表有4个字段分别是 ...

  • mybatis plus主键回填

    数据库ID字段要设置成自增 由于mybatis plus默认生成的主键是long,要在实体类中设置 注意 @Tab...

  • mysql使用简单技巧

    1.将非主键设置为自增mysql的自增列只能存在一个。若为非主键的自增,则需要增加如下索引,即可设置为自增字段 2...

网友评论

      本文标题:mybatis设置返回自增主键失败原因

      本文链接:https://www.haomeiwen.com/subject/hndnxqtx.html