mybatis插入数据时,自动获取主键的自增id_Mitsuha三葉的博客-程序员资料

技术标签: java  mybatis  mysql  

    自己在写博客时,遇到了一个小问题,新增博客的时候,无法得到新增博客的id

    由于设计的数据库中博客id是自增长的主键,由数据库自动生成,所以只能先插入博客后,再获取它的id。

解决方法:在mapper.xml文件里设置属性
在insert方法中添加以下两个属性即可

  1. useGeneratedKeys
  2. keyProperty
<!--useGeneratedKeys="true";使用自增主键获取主键值策略
    keyProperty;指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性
-->
<insert id="saveBlog" parameterType="Blog" useGeneratedKeys="true" keyProperty="id">

    insert into t_blog (title, content, type_id, tag_ids)
    
    values (#{
    title}, #{
    content},#{
    typeId}, #{
    tagIds});
    
</insert>

插入成功后,会直接赋值到参数bean的id中;
然后在业务层获取即可:

public int saveBlog(Blog blog) {
    

    //保存博客
    blogDao.saveBlog(blog);
    //保存博客后才能获取自增的id
    Long id = blog.getId();//mybatis返回的主键id
    
    //...其他操作
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42804736/article/details/105012057

智能推荐

Google Earth Engine(GEE)提取水体_gee水体提取_生态遥感监测笔记的博客-程序员资料

今天分享一下如何用MNDWI水体指数来提取研究区的水体

Houdini图文笔记:如何声明全局变量(更新使用VEX创建全局变量)_houdini全局变量_开发游戏的老王的博客-程序员资料

最近在啃Houdini程序化建模经典教程《湖边小屋》,B站上有很多该教程的搬运,强烈推荐UP主七里雪凝的拆解版本,不过对于老王这样的纯小白,除了实现思路方面的大障碍,一些功能和语法上问题也是不容忽视的劝退障碍,所以在学习过程中,我会把自己遇到一些知识点记录下来,本文介绍一下如何设置全局变量。什么是全局变量和程序中的全局变量意义相同,有些数据在项目的很多地方都会被引用到,无论当它在任何地方被修改,我们希望对它的所有引用都能够同步更新。不过在Houdini中声明全局变量的设置对初次使用的人来说比较隐蔽,.

java多线程之生产者和消费者案例_西门吹雪叶孤城的博客-程序员资料

1.线程通信不同的线程执行不同的任务,如果这些任务有某种关系,线程之间必须能够通信,协调完成工作.经典的生产者和消费者案例(Producer/Consumer):     分析案例:              1):生产者和消费者应该操作共享的资源(实现方式来做).              2):使用一个或多个线程来表示生产者(Producer).

SpringBoot工作机制概述_王子様~的博客-程序员资料

原文:https://blog.csdn.net/m0_37962779/article/details/78957309 1 SpringBoot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boo...

MySQL与PostgreSQL比较,哪个更好、我们该选用哪个?_Ch97CKd的博客-程序员资料

点击上方“码农突围”,马上关注这里是码农充电第一站,回复“666”,获取一份专属大礼包真爱,请设置“星标”或点个“在看”作者:祚儿疯blog.csdn.net/u012414189/...

随便推点

Qt在blackfin平台的移植(备忘)_qt warning: error: failed to map framebuffer devic_vigour1000的博客-程序员资料

Qt在blackfin平台的移植(备忘)  前提:已经存在一个可以运行ulinux系统(内核需要支持unix socket选项)且支持frambuffer的Blackfin平台环境,并且有了blackfin平台编译工具链。 1.下载QtEmbedde(Qt/E)版本源码,下载地址为:ftp://ftp.trolltech.no/qt/source/qt-embedded

以评促建,推动高效惠民数字政府建设——2018数字政府建设论坛暨第十七届中国政府网站绩效评估结果发布会在京召开..._中国计算机报的博客-程序员资料

导语:放眼世界,政府数字化转型已成大势所趋。纵观国内,建设数字政府、数字中国逐渐升至新时代国家发展战略。作为数字中国体系重要组成部分的数字政府,是实现数字中国建设目标、推...

C语言推箱子的代码_c语言推箱子完整代码_爱喝可乐的大橘的博客-程序员资料

#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;conio.h&gt; #define HEIGHT 10 //纵向 #define WIDIH 10 //横向 int x, y; //人的位置 int boxs; //箱子数 //函数声明 void drawMap();...

50行代码实现简单的网站服务器 2_weixin_33796205的博客-程序员资料

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

飞思卡尔imx6开发板网络设置_imx6q 设置网关_乐思智能科技有限公司的博客-程序员资料

imx6q 网络调试方式汇总2016年01月25日 21:34:35 海边自在生活 阅读数:2322更多个人分类: linux前面完成了linux平台的移植,下面介绍部分调试手段,可以加快项目开发速度.先简介调试手段( 1 ) 在uboot下使用TFTP下载linux内核.这样可以只要重启开发板就可以加载新的内核,方便你在进行内核移植时,随时测试新配置的内核.( 2 ) 通过NFS挂载根...

文件扩展名,你知道这些吗?(续)_weixin_33908217的博客-程序员资料

----- I -------ICA  Citrix文件 ICB  Targa位图文件 ICC  Kodak打印机格式文件 ICL  图标库文件 ICM  图形颜色匹配配置文件 ICO  Windows图标 IDB  MSDev中间层文件 IDD  MIDI设备定义 IDF  MIDI设备定义(Windows 95需要的文件) IDQ  Internet数据查询文件 ID...

推荐文章

热门文章

相关标签