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

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);
    }

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值