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