mybatis 插入语句 返回自增长id方法
背景:目前有个插入语句需要获取插入记录的id 因为id是自增长的,所以要在插入后返回这个id
错误1:
mapper.xml:
<!-- 新增 返回自增长id-->
<insert id="save" parameterType="pd" resultType="int">
insert into sys_push(
username,title,content,publisher,pushtime
) values (
#{username},#{title},#{content},#{publisher},#{pushtime}
)
</insert>
我天真的以为 需要用resultType返回一个int类型的,结果项目启动直接报错了,因为insert方法根本就没有resultType! 哎 基础不扎实啊。。。
之后百度了下 哦 原来返回id是这么用的
正确: keyProperty="id" useGeneratedKeys="true"
<!-- 新增 返回自增长id-->
<insert id="save" keyProperty="id" useGeneratedKeys="true" parameterType="pd">
insert into sys_push(
username,title,content,publisher,pushtime
) values (
#{username},#{title},#{content},#{publisher},#{pushtime}
)
</insert>
重新启动后 调用查询语句发现:
int id = pushService.save(pd);
怎么id都是1。。。。
错误2:
又百度了一下,原来insert这个返回值返回的是插入成功的条数,不是id啊。。。哎 基础不扎实啊。。。
正确:
在查询后,要获取的id其实已经在传入对象的参数里了,用xx.getId()方法就可以直接获取到了。
int insertNum = pushService.save(pd);//插入的条数
Long id = (Long) pd.get("id");//获取id
我这里传入的是封装的pd对象,获取方法是get("id")
如果是传入user类,获取方式是 Long id = user.getId();//该对象的自增ID
注意: 返回的id是long类型
over!
mybatis 插入语句 返回自增长id方法的更多相关文章
- MyBatis插入语句返回主键值
插入语句xml代码: <insert id="insertUser" parameterType="com.spring.mybatis.po.User" ...
- mybatis插入是返回主键id
<!-- 插入数据:返回记录的id值 --> <insert id="insertOneTest" parameterType="org.chench. ...
- 关于mybatis插入数据库返回主键id
关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <se ...
- Mybatis插入数据返回主键ID
<insert id="add" parameterType="com.dsa.core.base.model.ProductSync"> ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- MyBatis 插入时返回刚插入记录的主键值
MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java package cn.co ...
- Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了
insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...
- Mybatis 插入后返回数据库自动增长ID
MySQL和MSSQL返回主键方法 在personMap.xml中 <insert id="addPerson" parameterType="orm.Person ...
随机推荐
- 解决Sublime Text3中文显示乱码问题
一.安装包管理器 使用Ctrl+~快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码 import urllib.request,os; pf = 'Package ...
- 【Makefile】Makefile中的常用函数简介
1. subst函数 格式:$(subst <from>, <to>, <text>)功能:把字串<text>中的<from>字符串替换成& ...
- LC 969. Pancake Sorting
Given an array A, we can perform a pancake flip: We choose some positive integer k <= A.length, t ...
- selenium 学习中遇到的问题汇总
1.使用document.getByClassName时无click事件,然后就不知道怎么办了,也不太懂前端,与开发大哥确认,div 中class实现展开和收起是通过隐藏和显示这种方式实现的,在编写时 ...
- 深度学习之Faster-R-CNN
哎!还是看大神博客吧 https://blog.csdn.net/liuxiaoheng1992/article/details/81843363
- Python安装以及简单使用教程
以windows版本举例: 1.首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载P ...
- 005-文件权限解说、授权chmod和chown命令的用法
一.文件权限说明 1.1.linux 中 drwxr-xr-x权限含义 在 linux drwxr-xr-x意思如下: 第一位表示文件类型.d是目录文件,l是链接文件,-是普通文件,p是管道. 后面的 ...
- Netflix Zuul
Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架.Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门. ApiGateway服务器 1.pom &l ...
- SQL Server 中 ROWLOCK 行级锁
一.ROWLOCK的使用 1.ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改.因而行级锁即可保证数据的一致性,又能提高数据操作的并发性. 2.ROWLOC ...
- 【AMAD】cookiecutter-django -- 是一个构建Django项目的脚手架工具
动机 简介 个人评分 动机 Django内置的命令django-admin startproject其实并不好用,在你上线之前八成已经把它改的面目全非了. 简介 cookiecutter-django ...