mybatis插入数据的时候获取自增的id

2023-10-27

1.自增的是int类型

 <!--添加一个球队
    parameterType="com.kkb.pojo.Team" 将对象作为参数,
    #{值} 值必须是实体类中的属性名称,其实就是占位符?
    -->
    <insert id="add" parameterType="com.kkb.pojo.Team"  >
        <!--新增成功之后将自增的ID赋值给参数属性teamId
        keyProperty:表示新增的id值赋值到哪个属性值红
        order:AFTER/BEFORE两个取值,表示selectKey中的sql语句在insert语句之前还是之后执行
        resultType:表示返回值类型
        -->
<selectKey keyProperty="teamId" order="AFTER" resultType="java.lang.Integer">
    select  LAST_INSERT_ID()
</selectKey>
INSERT INTO `team` (`teamName`, `location`, `createTime`)
VALUES (#{teamName}, #{location}, #{createTime})
</insert>

2.自增的是string类型

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace="名称必须与映射的类的名字一致,是完全限定名"-->
<mapper namespace="com.kkb.mapper.GameRecordMapper">
<!--
添加一条比赛记录
-->
<insert id="add" parameterType="com.kkb.pojo.GameRecord" >
<!--插入数据之前先获取36位字符串作为id放入属性recordId中
order="AFTER/BEFORE" 在insert执行之前还是之后
resultType="返回值的类型"
-->
<selectKey keyProperty="recordId" order="BEFORE" resultType="java.lang.String">
select uuid()
</selectKey>
INSERT INTO `mybatis`.`gamerecord` (`recordId`, `homeTeamId`, `gameDate`, `score`, `visitingTeamId`)
VALUES (#{recordId}, #{homeTeamId},default, #{score}, #{visitingTeamId})
</insert>
</mapper>

测试类

public class GameRecordMapperTest {
    private SqlSession sqlSession=MybatisUtil.getSqlSession();
    @Test
    public void testAdd(){
        GameRecordMapper mapper = sqlSession.getMapper(GameRecordMapper.class);
        GameRecord record=new GameRecord();
        record.setHomeTeamId(1007);
        record.setVisitingTeamId(1002);
        record.setScore(118);
        int num = mapper.add(record);
        sqlSession.commit();//必须提交才能让增删改生效
        System.out.println("add结果:"+num);
        System.out.println(record.getRecordId());
    }
}
public class testId {
   private   SqlSession sqlSession = MybatisUtil.getSqlSession();
    private TeamMapper teamDao = sqlSession.getMapper(TeamMapper.class);
    @Test
    public void test01(){
        Team team =new Team();
        team.setLocation("beijing");
        team.setTeamName("泰和宜园");
        team.setCreateTime(new Date());
        teamDao.add(team);
        sqlSession.commit();
        Team team1 = teamDao.queryById(team.getTeamId());
        System.out.println(team1);
    }

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

mybatis插入数据的时候获取自增的id 的相关文章

随机推荐

  • RocketMQ第二篇 单机版安装操作步骤

    MQ下载地址 下载RocketMQ 4 7 1版本 RocketMQ运行版本下载地址 https archive apache org dist rocketmq 4 7 1 rocketmq all 4 7 1 bin release z
  • 用Python做一个简单的表白程序

    我最近在看了一本Python tkinter从入门到精通 看了四章了 前面四章主要就是讲部件的共同属性 控件的布局 窗口的属性设置 于是利用这些做了个简单的程序 我将这个程序打包成了执行文件 放在了百度网盘 链接 https pan bai
  • Matlab小波神经网络(时间序列预测)

    Matlab 小波神经网络时间序列预测 时间序列数据 公共号 数据统计分析与挖掘 中回复 数据 获取本文所需数据 公共号 数据统计分析与挖掘 中回复 书籍 获取50本数据分析 python 统计学经典书籍 扫描二维码 回复 数据 获取本文所
  • Scala中的继承

    1 Scala中的扩展类 使用 extends 继承父类 eg abstract class People val name String def speak def info Unit printf this people s name
  • Nginx的alias/root/try_files实战

    项目背景 前端Vue项目 同时支撑PC网站 手机M站和手机App 在项目构建之后会有三个子目录作为路由分别对应m站 PC和APP 但是该项目作为一个服务对外提供服务需要一个统一的请求入口 比如 location xx root data w
  • cisco 3640 voip配置实例解析

    下面是一个Cisco 3640的VOIP配置 对方的结构是台北和上海两地做VOIP 后接阿尔卡特的PBX 这是我亲手做的 里面有很多有注意的地方 与大家一起分享快乐 如有看不懂的地方请问我 还有我加的注解 Taipei sh run Bui
  • Android_切换主题或皮肤的实现方式

    1 简介 使用自定义主题或者皮肤 可以将相关配置 颜色 大小等等 放在一个新的apk压缩文件中 目录结构保持一致 该apk文件放在任意可以访问到的目录即可 类似 system framework framework res apk 可根据软
  • Linux:haproxy部署--搭建nginx集群

    Haproxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一 它支持双机热备 虚拟主机 基于TCP和HTTP应用代理等功能 其配置简单 而且拥有很好的对服务器节点的健康检查功能 相当于keepalived健康检
  • 编写一求两个数的最大值的函数Max,要求用模板实现对任意数据类型数据都可应用该函数求取结果

    编写一求两个数的最大值的函数Max 要求用模板实现对任意数据类型数据都可应用该函数求取结果 在main 函数中分别用整型 实型 字符型数据进行测试 include
  • 打开用友软件提示 SQL Server口令怎么办?(含多种版本SQL Server数据库的安装方法)

    转自 http www ufidawhy com jcufida SQLServerkl html 用友财务软件提示 SQL Server口令怎么办 具体提示如下 由于SQL Server的超级用户口令修改过 用友网络财务软件不能连接到SQ
  • 清除Tomcat日志

    清除Tomcat日志 Tomcat日志清理日常必不可少 这里记录一下平时使用命令 0 查日志文件占空间大小 cd wltiot tomcat apache tomcat 7 0 99 logs ll ah 1 清除catalina out文
  • chrome控制台修改JS的变量值

    最近突然闲着没事想起来之前一个前端比较好玩的东西 然后记录一下 注注注 我是专业后台搬砖工 这是修改前的 所有流程都是正常走的 if里的也没有打印出来 然后 我们改改 坏笑 先进控制台在判断那块打出断点 然后找到右边的Global 所有的变
  • Ubuntu22.04安装CUDA和cuDNN详细过程记录

    文章目录 一 安装显卡驱动 二 安装CUDA 三 安装cuDNN 四 更换cuDNN版本 参考资料 一 安装显卡驱动 1 终端中输入以下命令获取显卡和驱动信息 ubuntu drivers devices 以我自己的机器为例 显示结果如下
  • C++杂谈 为什么类的空指针对象可以访问类某些的成员函数

    class TestObject public TestObject std cout lt lt TestObject lt lt std endl TestObject std cout lt lt TestObject lt lt s
  • 华为HCIE云计算之FC添加ipsan数据存储

    华为HCIE云计算之FC添加ipsan数据存储 一 登录华为OceanStor仿真器 二 在数据存储创建LUN 1 创建硬盘域 2 创建存储池 3 创建LUN和LUN组 4 创建主机和主机组 5 创建映射关系 三 配置数据存储的端口IP 1
  • opencv进阶19-基于opencv 决策树cv::ml::DTrees 实现demo示例

    opencv 中创建决策树 cv ml DTrees类表示单个决策树或决策树集合 它是RTrees和 Boost的基类 CART是二叉树 可用于分类或回归 对于分类 每个叶子节点都 标有类标签 多个叶子节点可能具有相同的标签 对于回归 每个
  • GPT-4 最强竞争对手,Claude 杀疯了!

    这是 进击的Coder 的第 851 篇技术分享 作者 小 G 来源 GitHubDaily 阅读本文大概需要 6 分钟 在今年早些时候 ChatGPT Bard Claude 等大语言模型 在 AI 领域呈三权鼎立之势 无人能出其右 被视
  • 如何解析hdlc帧7E头(帧格式分析实例)

    0 前言 作为一名嵌入式工程师 经常需要通过UART与外设打交道 而对于串行总线来说 往往我们必须要进行帧同步 通常的做法是把信令包含在2个0x7E的中间 除此之外还有HDLC PPP等协议也会到有此应用场景 那么如何从这些数据帧中提取有效
  • pip3 config 更新源问题

    pip源配置文件可以放置的位置 Linux Unix etc pip con pip pip conf 每一个我都找了都没有 所以我是在这个文件夹中创建的pip conf文件 config pip pip conf Mac OSX Libr
  • mybatis插入数据的时候获取自增的id

    1 自增的是int类型