MyBatis+MySQL 返回插入的主键ID

2023-11-17

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

 

方法:在mapper中指定keyProperty属性,示例如下:

Xml代码    收藏代码
  1. <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">  
  2.     insert into user(userName,password,comment)  
  3.     values(#{userName},#{password},#{comment})  
  4. </insert>  

 如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。

 

User.java

Java代码    收藏代码
  1. public class User {  
  2.     private int userId;  
  3.     private String userName;  
  4.     private String password;  
  5.     private String comment;  
  6.       
  7.     //setter and getter  
  8. }  

 UserDao.java

Java代码    收藏代码
  1. public interface UserDao {  
  2.   
  3.     public int insertAndGetId(User user);  
  4.   
  5. }  

 测试:

Java代码    收藏代码
  1. User user = new User();  
  2. user.setUserName("chenzhou");  
  3. user.setPassword("xxxx");  
  4. user.setComment("测试插入数据返回主键功能");  
  5.   
  6. System.out.println("插入前主键为:"+user.getUserId());  
  7. userDao.insertAndGetId(user);//插入操作  
  8. System.out.println("插入后主键为:"+user.getUserId());  

 输出:

Shell代码    收藏代码
  1. 插入前主键为:0  
  2. 插入后主键为:15  

 查询数据库:

 

如上所示,刚刚插入的记录主键id为15

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis+MySQL 返回插入的主键ID 的相关文章

  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 从按日期时间排序的 MySQL 表中获取用户的最后一个条目

    我有一张看起来像这样的桌子 USERNAME DATA DATETIME Jhon text1 2010 06 01 16 29 43 Mike text2 2010 06 01 16 29 22 Silver text3 2010 05
  • Galera 集群问题

    我想在我们的生产环境中使用Galera集群 但我有一些顾虑 每个表必须至少定义一个显式主键 每个表必须运行在InnoDB或XtraDB存储引擎下 分批处理您的大额交易 例如 不要让一个事务插入 100 000 行 而是将其分成更小的块 例如
  • MySQL - 从临时表插入

    这看起来非常简单 但我坚持使用简单的插入语句 见下文 begin work CREATE TEMPORARY TABLE IF NOT EXISTS insert table AS select r resource id fr file
  • MySQL 通过 current_timestamp 选择上个月的数据

    直到今天 当我使用 MySQL 并需要对日期 时间执行操作时 我使用带有 unix 时间戳的 int 列 没有出现任何问题 但今天在阅读了一些指南后 我决定默认使用 current timestamp 测试时间戳列 所以我感兴趣如何按列选择
  • MySQL 8 用逗号分割字符串并将其转换为JSON ARRAY

    我有以下字符串 a b c d 我想将它转换成一个 json 数组 像这样 a b c d MySQL 8 有什么函数可以实现这个功能吗 Try SELECT CAST CONCAT REPLACE a b c d AS JSON See
  • 合并两个 MYSQL SELECT 查询[重复]

    这个问题在这里已经有答案了 可能的重复 如何将两个 Post Category 表 MYSQL SELECT 查询合并为一个 https stackoverflow com questions 12972130 how to combine
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • MySQL 错误 1172 - 结果包含多行

    在存储过程中运行查询时 我从 MySQL 收到此错误 错误代码 1172 结果包含多行 我理解错误 我正在做一个SELECT INTO var list 因此查询需要返回单行 当我使用LIMIT 1 or SELECT DISTINCT 错
  • MySQL 排序顺序 - 排序规则?

    我在对 MySQL 中的 char 字段进行排序时遇到困难 问题是重音字符与非重音字符混淆 例如 Abc bd Acc 我认为这可能与整理有关 所以我将表格的排序规则更改为utf8 ut8 bin 看完之后这个帖子 https stacko
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • MySQL 转储未知选项“-no-beep”

    在旧服务器上我使用了mysql转储命令来备份 MySQL 数据库 在新服务器上 MySQL 版本为 5 6 相同的命令给出了错误 unknown option no beep 无论它插入什么 我也在互联网上搜索过 但找不到任何帮助 在 my
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • vue+Element-ui 导入excel文件生成json数据

    1 首先安装依赖 import XLSX from xlsx 2 建立读取excel文件的js文件 以便调用 importExcel js import XLSX from xlsx export function readExcel fi
  • java随笔:类成员

    类成员 1 介绍 在java中只能包含成员变量 方法 构造器 初始化块 内部类 接口 枚举 5种成员 其中static可以修饰成员变量 方法 初始化块 内部类 接口 枚举 用static修饰的成员就是类成员 类成员属于整个类 而不属于单独的
  • KLT(Kanade-Lucas-Tomasi )

    目录 光流法 KLT 原理 应用 目标跟踪算法主要分为两类 一类是传统的目标跟踪算法 粒子滤波 pf Mean Shift及KLT算法 或称Lucas光流法 另一大类是基于深度学习的跟踪算法 光流法 光流 Optical flow 其实是指
  • MySQL事务隔离级别、脏读、幻读、不可重复读现象及解决办法、快照读和当前读

    目录 一 事务隔离级别 二 脏读 幻读 不可重复读现象及解决办法 1 脏读 2 不可重复读现象 3 幻读现象 4 使用for update避免幻读 5 使用串行读避免幻读现象 三 快照读与当前读 1 理论 2 RR 下 快照建立时机 第一次
  • Tensorflow Serving 模型部署指南

    文章目录 1 Saver端 模型的离线训练与导出 1 1 saved model 模型保存与载入 1 1 1 简单场景 模型保存 1 1 2 简单场景 模型载入 1 1 3 使用SignatureDef 模型保存 1 1 4 使用Signa
  • 一开机checkingmedia_Win7系统开机提示Checking Media Presence如何解决

    Win7系统在开机的时候 总是会弹出各种各样的错误提示 比如最近就有win732位系统用户反映说开机的时候提示Checking MediaPresence 出现这样的问题可能是启动顺序问题导致的 现在给大家分享一下Win7系统开机提示Che
  • actuator--基础--01--介绍

    actuator 基础 01 介绍 1 介绍 是一个采集应用内部信息暴露给外部的模块 2 提供哪些的功能 健康检查 审计 指标收集 HTTP 跟踪 监控和管理Spring Boot 应用 2 1 访问方式 上述的功能可以通过HTTP 和 J
  • ‘sslSocketFactory(javax.net.ssl.SSLSocketFactory)‘ is deprecated

    sslSocketFactory javax net ssl SSLSocketFactory is deprecated 具体信息如下 public OkHttpClient Builder sslSocketFactory SSLSoc
  • Spring Boot实践 第二章 Spring boot 的配置文件

    前一章 我们创建了第一个spring boot 程序 这一章分享一下spring boot的配置方式和一些技巧 spring boot 的特性之一就是 配置简单 spring boot不再使用之前spring 的xml配置方式 xml的配置
  • Netty 性能测试(与Tomcat 对比)

    一直以来都认为 Netty 的性能会非常优秀 打算在适当的时候使用它来开发一些要求超高新能的服务 今天兴致勃勃的写了个简单的 HTTP 服务 同样也用 tomcat 写了一个对比的 jsp 页面 结果测试下来 感觉 Netty 的性能提升并
  • 【数据结构】查找算法:二分查找、顺序查找

    08年9月入学 12年7月毕业 结束了我在软件学院愉快丰富的大学生活 此系列是对四年专业课程学习的回顾 索引参见 http blog csdn net xiaowei cqu article details 7747205 查找算法 查找算
  • 企业微信免登录跳转自建应用

    项目场景 企业微信免登录自建H5应用 项目场景 已存在开发好的web程序 现在需要集成到企业应用里 预想的是新建一个企业微信应用 点击后直接免登录进入web程序应用 一 创建企业微信应用 首先 创建企业微信账户并进入管理后台 https w
  • MyBatis快速入门(一) 搭建环境和单表映射

    MyBatis简介 一说起对象关系映射框架 大家第一时间想到的肯定是Hibernate Hibernate作为一个著名的框架 功能十分强大 我们只需要配置好实体类和数据表之间的关系 Hibernate就会自动帮我们完成生成并执行SQL语句
  • hive使用时的用户权限问题

    0 jdbc hive2 node1 10000 gt create role root Error Error while processing statement FAILED Execution Error return code 1
  • 599. Minimum Index Sum of Two Lists

    Suppose Andy and Doris want to choose a restaurant for dinner and they both have a list of favorite restaurants represen
  • Java跨平台原理

    第二部分 Java跨平台原理 1 什么是平台 Java是可以跨平台的编程语言 那我们首先得知道什么是平台 我们把CPU处理器与操作系统的整体叫平台 CPU大家都知道 如果计算机是人 那CPU就是人的大脑 它既负责思维运算 又负责身体各部件的
  • Hadoop003-Hadoop的I/O操作

    1 数据完整性 重点词汇 1 校验和 checksum 2 复本因子 replication factor 3 一系列datanode组成的管线 4 fs checksum 5 distcp 2 压缩 文件压缩优点 1 减少存储文件所需要的
  • django启动服务器失败-已解决

    参考菜鸟教程 启动失败 解决办法 将python3改为python
  • android手机时钟、闹钟、计时器、秒表app源码

    简 介 此多功能闹钟界面采用TabHost框架 头部包含分别用LinearLayout水平布局显示四个标签闹钟 时钟 计时器和秒表 FrameLayout框架内部采用LinearLayout垂直布局 功能事件的基本实现分别有AlarmVie
  • MyBatis+MySQL 返回插入的主键ID

    需求 使用MyBatis往MySQL数据库中插入一条记录后 需要返回该条记录的自增主键值 方法 在mapper中指定keyProperty属性 示例如下 Xml代码