背景:目前有个插入语句需要获取插入记录的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方法的更多相关文章

  1. MyBatis插入语句返回主键值

    插入语句xml代码: <insert id="insertUser" parameterType="com.spring.mybatis.po.User" ...

  2. mybatis插入是返回主键id

    <!-- 插入数据:返回记录的id值 --> <insert id="insertOneTest" parameterType="org.chench. ...

  3. 关于mybatis插入数据库返回主键id

    关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <se ...

  4. Mybatis插入数据返回主键ID

    <insert id="add" parameterType="com.dsa.core.base.model.ProductSync">      ...

  5. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  6. MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  7. MyBatis 插入时返回刚插入记录的主键值

    MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java package cn.co ...

  8. Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了

    insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...

  9. Mybatis 插入后返回数据库自动增长ID

    MySQL和MSSQL返回主键方法 在personMap.xml中 <insert id="addPerson" parameterType="orm.Person ...

随机推荐

  1. P2602 [ZJOI2010]数字计数&P1239 计数器&P4999 烦人的数学作业

    P2602 [ZJOI2010]数字计数 题解 DFS 恶心的数位DP 对于这道题,我们可以一个数字一个数字的求 也就是分别统计区间 [ L , R ] 内部数字 i 出现的次数 (0<=i&l ...

  2. 链接Linux工具(SecureCRT)

    SecureCRT下载 点我下载 http://download.csdn.net/download/weixin_39549656/10207279 安装 先运行注册机 链接 输入密码 出现以下界面 ...

  3. web.config 配置无后缀文本的访问

    在 www.sslforfree.com 申请ssl免费证书,我参考了别人分享的方法,采用了文件验证的方式.可是按照步骤把文件放好后,一直访问不了,总是跳到了404. 确定文件路径和上传的文件都没问题 ...

  4. CMDB项目

    实现功能 邮箱验证码注册 图片验证码登陆 生成验证码图片,前端请求图片: 获取验证码字符串,防入当前session: 获取前端用户名.密码.验证码: 判断验证码是否匹配,判断用户名和密码是否匹配. 设 ...

  5. OSI 的七层模型

    一.概念 概念:开放系统互联参考模型,是由 ISO(国际标准化组织)定义的.目的:规范不同系统的互联标准,使两个不同的系统能够较容易的通讯. 网络刚面世时,通常只有同一家厂商的计算机才能彼此通讯.OS ...

  6. Redis之快速入门与应用[教程/总结]

    内容概要 因为项目中用户注册发送验证码,需要学习redis内存数据库,故而下午花了些时间进行初步学习.本博文性质属于对今日redis学习内容的小结.在看本博文前或者看完后,可以反问自己三个问题:Red ...

  7. JavaScript之参数传递方式

    前言 nodejs项目中遇到此问题了,具体啥需求暂时不说~ 本博文,关于理论部分,主要是摘抄"推荐文献"第一篇:关于实验部分是看该博文之前做的,两者无干系. [结论]对于普通函数, ...

  8. uni-app 使用本地打包配置安卓原生插件

    在使用 uni-app 开发的时候,遇到了一个很棘手的问题.即获取设备参数的时候 uni-app 并没有相关方法,而安卓开发是可以做到的,因为接的是三方推广,所以功能必须实现,所以求助了安卓的大佬帮我 ...

  9. USACO 1.2 Broken Necklace

    断点是白色的情况在做题的时候完全没有想到呢... 看到了数据才发现这个问题$qwq$ /* ID:Starry21 LANG:C++ TASK:beads */ #include<iostrea ...

  10. 关于安装Git后,项目目录右键菜单无Git Bash Here命令的选项

    修改注册表配置 1.第一步,window + R,输入regedit回车进入注册表 2.依次进入HKEY_CLASSES_ROOT --> Directory -->Background ...