mybatis如何查询主键
如何得到插入数据之后的主键值?
第一种:数据库设置主键自增机制
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如何查询主键相关推荐
- 【转】mybatis 自增主键配置
mybatis自增主键配置(?) mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同.基本上经常会遇到的就是Oracle Sequece 和 MySQL 自增主键,至 ...
- mysql自增主键和mybatis自增主键不一致问题(已解决):
mysql自增主键和mybatis自增主键不一致问题(已解决): 在插入数据前,先进行查询主键 <insert id="insertSelective"><sel ...
- mybatis 实现oracle主键自增的机制
本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...
- DB2查询主键、索引、表约束
# 查询主键: SELECT K.COLNAME AS 主键名 FROM SYSCAT.KEYCOLUES K WHERE TABSCHEMA='SCHEMA' AND TABNAME='TABNAM ...
- mybatis中设置主键返回
mybatis中设置主键返回 <insert id="insertSelective" parameterType="com.nwow.pss.model.User ...
- mybatis insert 返回主键_面试准备季——MyBatis 面试专题(含答案)
话不多说,直接上题-- 1.什么是 Mybatis? (1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱 ...
- mybatis insert返回主键_MyBatis官方文档XML 映射文件
XML 映射文件 MyBatis 的真正强大在于它的映射语句,这是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省 ...
- Mysql 查询主键未指定排序时的默认排序问题
正文 跑批量任务需要分批按顺序把主键取出来,语句如下: SELECT id FROM foo.bar LIMIT 10 OFFSET 0 +-----+ | id | +-----+ | 109 | ...
- mysql 子查询 主键外键_MySQL查询优化:用子查询代替非主键连接查询实例介绍
一对多的两张表,一般是一张表的外键关联到另一个表的主键.但也有不一般的情况,也就是两个表并非通过其中一个表的主键关联. 例如: create table t_team ( tid int primar ...
最新文章
- 两台SQL Server数据同步解决方案
- 精通Zookeeper系列开篇:进大厂不得不学的分布式协同利器!
- python 字节和字符串区别,Python中字节串和字符串,不是一个概念没有区别之分...
- win10必须禁用的服务_7寸屏的迷你电脑,就算是8GB运行内存,也必须关闭的系统选项...
- Spring Boot中的缓存支持(一)注解配置与EhCache使用
- 如何更新Node.js?
- 解决IIShalders错误,解决IISmodules错误
- 左手用R右手Python系列16——XPath与网页解析库
- 幸福来得快,去的也快。
- springMVC之applicationcontext.xml配置说明
- php对字符串简单加密解密,PHP字符串加密解密
- 使用Cadence的PCB editor画元器件的封装
- EPON联通网关超级管理员密码获取办法
- Python 学习笔记 - 函数
- HTML5期末大作业:设计网站设计——动漫设计响应式(10页) HTML+CSS+JavaScript 动漫设计制作 简单静态HTML网页作品 动漫设计作业成品 学生个人网站模板
- simplest_ffmpeg_decoder_pure.c
- idea用JAVA连接mysqlAccess denied for user ‘root‘@‘localhost‘ (using password: YES)错误
- 计算机毕业设计 python微信公众平台机器人
- 研究显示每天工作超8小时得心脏病几率增加80%
- 03 数据契约_03 数据契约层级(DataContract Hierarchy)