`
panqili2120
  • 浏览: 88647 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Mybatis中insert、Update操作返回主键

阅读更多

Mybatis中insert、Update操作返回主键

 

How to get pk after operation of insert, update in mybatis?

 

两种方式

1. <insert id="insert" parameterType="User" keyProperty="id" >

 

java代码    调用insert(User u)后 u.getPK()就有值了

 

2.   不推荐,经测试,在SPRING事务环境中,永远返回1,因为在insert后,事务并没有提交所以。。。坑啊!

<insert id="insert" parameterType="com.wsmall.kalemao.dal.auth.dataobject.UserDo" >
  <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
    SELECT LAST_INSERT_ID()
  </selectKey>
  insert into User ...
</insert >

java代码    pk = insert(User u)

 

分享到:
评论
2 楼 panqili2120 2017-11-22  
DeadWalkers 写道
u.getPK(),此处的PK是User的一个成员变量么?那么如何指定该成员变量的特殊性(即存储返回的自增长主键值)呢?
   sorry,现在才回复PK是主键的意思(Primary Key),  user.getPK()就是获取user对应get主键的方法
1 楼 DeadWalkers 2016-11-21  
u.getPK(),此处的PK是User的一个成员变量么?那么如何指定该成员变量的特殊性(即存储返回的自增长主键值)呢?

相关推荐

    Mybatis 中的insertOrUpdate操作

    在Mybatis中,`insertOrUpdate`操作是一种将数据插入数据库,如果存在相同的唯一标识则更新已有数据的方法。这种操作在数据库编程中非常实用,因为它允许开发者以简洁的方式处理增删改查(CRUD)操作。在MySQL中,...

    Mybatis实现插入数据后返回主键过程解析

    在MyBatis中,添加操作返回的是记录数并非记录主键id。如果需要获取新添加记录的主键值,需要在执行添加操作之后,直接读取Java对象的主键属性。例如: ```java Integer rows = sqlSession.getMapper(UserMapper....

    MyBatis+MySQL 返回插入的主键ID的方法

    首先,我们需要在MyBatis的Mapper接口中定义一个插入并返回主键ID的方法。这里我们以一个`UserDao`接口为例,定义一个`insertAndGetId`方法: ```java public interface UserDao { public int insertAndGetId(User...

    MybatisPlus中插入数据获取主键值示例代码

    在MybatisPlus中,可以通过`BaseMapper`接口的`insert`或`insertOrUpdate`方法来实现数据插入。例如,如果我们有一个`User`实体类,我们可以这样做: ```java User user = new User(); user.setName("John"); user....

    mybatis数据操作(增删改查+批量操作)

    在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...

    springmybatis

    查询出列表,也就是返回list, 在我们这个例子中也就是 List&lt;User&gt; , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...

    Mybatis-plus相关操作.pdf

    Mybatis-plus的CRUD操作主要包括:insert、update、delete、select方法。insert方法用于添加数据,update方法用于更新数据,delete方法用于删除数据,select方法用于查询数据。 Mybatis-plus支持多种查询条件构造器...

    spring-boot+tk.mybatis通用mapper

    而tk.mybatis则是MyBatis的扩展,提供了一些增强功能,便于在Spring Boot环境中使用MyBatis进行数据库操作。本教程将深入探讨如何在Spring Boot项目中集成tk.mybatis通用Mapper,实现高效的数据访问。 首先,我们...

    mysql如何实现 如果存在就update更新,不存在再insert插入.zip

    在这个`mybatis`配置中,`YourDomainClass`的属性将被映射到对应的列,`insertOrUpdate`方法会处理插入或更新操作。 要注意的是,`ON DUPLICATE KEY UPDATE`依赖于存在合适的唯一索引或主键。如果没有定义,MySQL将...

    mybatis-plus快速入门项目-mybatis-plus基本操作大全-附带sql+项目文档

    MyBatis-Plus提供了自动化的CRUD操作,包括insert、insertBatch、selectOne、selectList、update、delete等方法,无需手动编写SQL。 6. **条件构造器(QueryWrapper)** QueryWrapper是MyBatis-Plus的核心组件之...

    Mybatis使用useGeneratedKeys获取自增主键的方法

    在上述代码中,如果仅依赖于`insert`操作返回的影响行数(即`result`)来判断是否成功,可能会导致错误。例如,如果所有插入尝试都因唯一键冲突而触发了更新,`result`始终为0,但实际操作已经完成。 批量插入时,`...

    MyBatis中文参考文档

    3. 执行SQL:调用SqlSession的方法,如selectOne、selectList、insert、update和delete,它们对应于SQL的CRUD操作。 4. 关闭资源:操作完成后,关闭SqlSession和SqlSessionFactory。 四、MyBatis注解使用 1. @...

    mybatis基于Dao的crud操作源码

    本项目是基于Mybatis进行DAO(Data Access Object)层的CRUD(Create、Read、Update、Delete)操作的源码实现,结合了Spring框架,便于管理和集成事务。 在Mybatis中,CRUD操作主要通过Mapper接口和对应的XML配置...

    mybatis 中文文档

    通过 `&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;`, `&lt;delete&gt;` 等标签编写 SQL,并通过 `&lt;resultMap&gt;` 定义字段映射关系。 4. **动态 SQL**:MyBatis 支持动态 SQL,使得 SQL 语句可以根据条件进行动态构建。例如,可以...

    mybatis中文教程

    映射文件中,我们定义SQL语句(如SELECT、INSERT、UPDATE、DELETE),并使用resultMap来映射查询结果到Java对象。例如,我们可以定义一个查询用户信息的SQL,然后通过resultMap指定字段与对象属性的对应关系。 四、...

    MyBatis.pdf

    MyBatis 提供了多种常用标签,包括 bind 标签、select 标签、insert 标签、update 标签和 delete 标签等。 MyBatis 是一个功能强大且灵活的持久层框架,它提供了多种方式来交互数据库,允许开发者快速地开发数据库...

    第三章 MyBatis的核心配置.docx

    * keyColumn:仅对insert和update标签有效,此属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置 * useGeneratedKeys:仅对insert和update标签有效,获取由数据库生产的主键,true/false

    mysql数据库Insert语句后面加ON DUPLICATE KEY UPDATE,保证唯一性1

    当你在`INSERT`语句后添加`ON DUPLICATE KEY UPDATE`,如果新插入的行违反了唯一性约束,MySQL将执行指定的`UPDATE`操作。这里的“唯一性”指的是任何具有唯一索引或主键的列。例如,如果你有一个名为`consume_locus...

    浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法

    总结来说,要在MyBatis-Plus中利用Oracle Sequence生成主键,需完成数据库Sequence的创建、项目配置(包括JDBC驱动、数据源、全局配置)、实体类注解以及数据库操作。这样的设置确保了在插入新记录时,MyBatis-Plus...

Global site tag (gtag.js) - Google Analytics