如何得到插入数据之后的主键值?


第一种:数据库设置主键自增机制

    userMapper.xml 文件中定义:

<!-- 向 user 表插入一条数据 --><insert id="insertUser" parameterType="com.ys.po.User"><!-- 将插入的数据主键返回到 user 对象中keyProperty:将查询到的主键设置到parameterType 指定到对象的那个属性select LAST_INSERT_ID():查询上一次执行insert 操作返回的主键id值,只适用于自增主键resultType:指定 select LAST_INSERT_ID() 的结果类型order:AFTER,相对于 select LAST_INSERT_ID()操作的顺序--><selectKey keyProperty="id" resultType="int" order="AFTER">select LAST_INSERT_ID()</selectKey>insert into user(username,sex,birthday,address)value(#{username},#{sex},#{birthday},#{address})</insert>

测试:

//向 user 表中插入一条数据并获取主键值@Testpublic void testInsertUser(){String statement = "com.ys.po.userMapper.insertUser";User user = new User();user.setUsername("Bob");user.setSex("女");session.insert(statement, user);//提交插入的数据session.commit();//打印主键值System.out.println(user.getId());session.close();}

第二种:非自增主键机制

<!-- 向 user 表插入一条数据 --><insert id="insertUser" parameterType="com.ys.po.User"><!-- 将插入的数据主键返回到 user 对象中流程是:首先通过 select UUID()得到主键值,然后设置到 user 对象的id中,在进行 insert 操作keyProperty:将查询到的主键设置到parameterType 指定到对象的那个属性select UUID():得到主键的id值,注意这里是字符串resultType:指定 select UUID() 的结果类型order:BEFORE,相对于 select UUID()操作的顺序--><selectKey keyProperty="id" resultType="String" order="BEFORE">select UUID()</selectKey>insert into user(id,username,sex,birthday,address)value(#{id},#{username},#{sex},#{birthday},#{address})</insert>

mybatis如何查询主键相关推荐

  1. 【转】mybatis 自增主键配置

    mybatis自增主键配置(?) mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同.基本上经常会遇到的就是Oracle Sequece 和 MySQL 自增主键,至 ...

  2. mysql自增主键和mybatis自增主键不一致问题(已解决):

    mysql自增主键和mybatis自增主键不一致问题(已解决): 在插入数据前,先进行查询主键 <insert id="insertSelective"><sel ...

  3. mybatis 实现oracle主键自增的机制

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...

  4. DB2查询主键、索引、表约束

    # 查询主键: SELECT K.COLNAME AS 主键名 FROM SYSCAT.KEYCOLUES K WHERE TABSCHEMA='SCHEMA' AND TABNAME='TABNAM ...

  5. mybatis中设置主键返回

    mybatis中设置主键返回 <insert id="insertSelective" parameterType="com.nwow.pss.model.User ...

  6. mybatis insert 返回主键_面试准备季——MyBatis 面试专题(含答案)

    话不多说,直接上题-- 1.什么是 Mybatis? (1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱 ...

  7. mybatis insert返回主键_MyBatis官方文档XML 映射文件

    XML 映射文件 MyBatis 的真正强大在于它的映射语句,这是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省 ...

  8. Mysql 查询主键未指定排序时的默认排序问题

    正文 跑批量任务需要分批按顺序把主键取出来,语句如下: SELECT id FROM foo.bar LIMIT 10 OFFSET 0 +-----+ | id | +-----+ | 109 | ...

  9. mysql 子查询 主键外键_MySQL查询优化:用子查询代替非主键连接查询实例介绍

    一对多的两张表,一般是一张表的外键关联到另一个表的主键.但也有不一般的情况,也就是两个表并非通过其中一个表的主键关联. 例如: create table t_team ( tid int primar ...

最新文章

  1. 两台SQL Server数据同步解决方案
  2. 精通Zookeeper系列开篇:进大厂不得不学的分布式协同利器!
  3. python 字节和字符串区别,Python中字节串和字符串,不是一个概念没有区别之分...
  4. win10必须禁用的服务_7寸屏的迷你电脑,就算是8GB运行内存,也必须关闭的系统选项...
  5. Spring Boot中的缓存支持(一)注解配置与EhCache使用
  6. 如何更新Node.js?
  7. 解决IIShalders错误,解决IISmodules错误
  8. 左手用R右手Python系列16——XPath与网页解析库
  9. 幸福来得快,去的也快。
  10. springMVC之applicationcontext.xml配置说明
  11. php对字符串简单加密解密,PHP字符串加密解密
  12. 使用Cadence的PCB editor画元器件的封装
  13. EPON联通网关超级管理员密码获取办法
  14. Python 学习笔记 - 函数
  15. HTML5期末大作业:设计网站设计——动漫设计响应式(10页) HTML+CSS+JavaScript 动漫设计制作 简单静态HTML网页作品 动漫设计作业成品 学生个人网站模板
  16. simplest_ffmpeg_decoder_pure.c
  17. idea用JAVA连接mysqlAccess denied for user ‘root‘@‘localhost‘ (using password: YES)错误
  18. 计算机毕业设计 python微信公众平台机器人
  19. 研究显示每天工作超8小时得心脏病几率增加80%
  20. 03 数据契约_03 数据契约层级(DataContract Hierarchy)

热门文章

  1. JZYZOJ1140 飞船控制站
  2. ACM学习历程—HDU 2112 HDU Today(map spfa 优先队列)
  3. PHP中获取文件扩展名的N种方法
  4. Linux 目录配置标准:FHS
  5. Python CGI 编程 | 类FieldStorage的使用
  6. ASP.NET中XML数据的处理
  7. 做个程序员身体调查,希望大家点一下!
  8. php 字符串中文截取,PHP 截取中文字符串(支持多种编码)
  9. 用Linux同时编辑两个文档,如何使用Vim编辑多个文件
  10. 手机展示海报PSD模板、适用众多设计!