Mybatis--关于插入数据后返回id的操作
如果xml仅仅只是这样写的话:
<insert id="insertUser" >insert into user(username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})</insert>
并且执行以下代码的话
static void function2() throws IOException {String path = "mybatis-config.xml";InputStream resourceAsStream = null;resourceAsStream = Resources.getResourceAsStream(path);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession sqlSession = sqlSessionFactory.openSession(true);UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = new User();user.setUsername("大大大明");mapper.insertUser(user);System.out.println(user);}
结果如下
会发现返回得到的id值仍然是0,但是数据库中确实已经插入继续了。
出现这样的原因,猜测是因为虽然执行了插入操作,但是并没有读取数据操作。这里想要得到真正的更新后的数据的话,需要在xml中加入如下标签:
<insert id="insertUser" >
<!-- <selectKey resultType="int" keyProperty="id" order="AFTER">-->
<!-- select last_insert_id-->
<!-- </selectKey>>--><selectKey resultType="int" keyProperty="id" order="AFTER">select last_insert_id()</selectKey>insert into user(username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})</insert>
*记住这里的last_insert_id()是个方法而不是变量,我就是在这里出错,结果找了半天才发现没加上括号
最后顺利的拿到想要的结果了:
Mybatis--关于插入数据后返回id的操作相关推荐
- mybatis插入数据后返回自增主键ID详解
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...
- mysql插入数据后返回自增id
mysql插入数据后返回自增id 使用<insert 中的useGeneratedKeys 和 keyProperty 两个属性 在Mybatis Mapper文件中添加属性 useGenera ...
- mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- 七种MYSQL插入数据后返回自增主键ID的方法
我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...
- mysql 插入数据后返回当前的自增ID方法
存储过程的写法: mysql>create procedure test( ->in username varchar(50), ->in password varchar(50), ...
- Mybatis 插入数据后返回自增主键ID
1 xml 映射文件中处理 在映射器中配置获取记录主键值 在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值, keyProperty 代表 ...
- mysql 插入数据后返回该条数据id
问题: 在做关联表插入操作时,需要根据主表的 主键id作详情表的属性值,最笨的方法就是,先插入主表,然后通过查询返回刚刚插入的 主键id,容易出现问题. 解决办法: 在mybatis的配置文件中,用k ...
- JDBC插入数据后返回新数据id
使用jdbc向表中插入数据时,有时候需要返回新插入数据的id.比如现在要向两个表中分别插入一条数据,第一条数据插入后生成的id要作为第二条数据的一个字段值. 具体代码: PreparedStateme ...
- MYSQL插入数据后返回主键
最近做项目,要求不能使用mybatis等框架,所以一切数据库访问操作都是用原生的JDBC. 用过mybatis的都知道,插入新数据后可以直接返回主键的值,但是使用JDBC不行,于是上网搜了一下,找到一 ...
最新文章
- 两大AI技术集于一身,有道词典笔3从0到1的飞跃
- Tomcat通过Redis实现session共享的完整部署记录
- 如何提高PyTorch“炼丹”速度?这位小哥总结了17种方法,可直接上手更改的那种...
- 【Android测试】【第十四节】Appium——简述
- JavaScript 复杂判断的更优雅写法
- 《NIOSII那些事儿》rev7.0 PDF版本发布
- C++map容器遍历删除:cannot increment value-initialized map/set iterator
- C语言中变量在内存中是如何存放的
- linux 监控命令iostat,Linux下 IO实时监控iostat命令详解
- java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术
- cassandra使用心得_使用Spring Data Cassandra缓存的预备语句
- 马斯克地球事务麻烦不断:Model 3又有一起严重事故曝光
- 微信内置浏览器调起外部浏览器打开指定网页连接
- Python入门--os.walk
- 关于360笔试部分题目小结
- linux动态库路径生效,Linux下如何解决动态库的链接问题
- windows 搭建Web服务器和连接局域网打印机
- PHP-FPM 性能优化
- 自然语言处理NLP概论
- 西门子PLC1200模拟量功能案例
热门文章
- CentOS+Subversion 配置Linux 下 SVN服务器
- 2017 ACM/ICPC(北京)总结
- 阿里无线11.11:手机淘宝移动端接入网关基础架构演进之路
- POJ - 1459 Power Network(最大流)(模板)
- WCF服务离线操作与消息队列MSMQ(转)
- 白鸦:我印象中的Keso
- gateway 过滤器执行顺序_Spring Boot实战之:轻松搞定拦截器与过滤器
- 拓端tecdat|R语言基于ARMA-GARCH过程的VaR拟合和预测
- php服务器启动错误,服务器意外重启之后PHP-FPM不能启动
- 【图像处理】canny和sobel边缘检测__python-opencv