文章目录
- MyBatis进行CRUD中添加数据实现主键回填
- 1、创建一个mybatis项目
- 2、实现添加数据时主键回填
- 在MyBatisTest.java中添加下面方法
- 在UserMapper.java中添加对应的属性
- 在UserMapper.xml中添加sql语句如下
- 运行结果如下(取消commit方法注释后就不会出现Rolling back回滚进行真实添加了):
MyBatis进行CRUD中添加数据实现主键回填
1、创建一个mybatis项目
可以参考之前的博文mybatis首次使用并查询数据库数据
下文在该项目基础上进行优化操作,UserDao.java改名为UserMapper.java,UserDao.xml改名为UserMapper.xml,也可以不改名字内容一样。
2、实现添加数据时主键回填
在MyBatisTest.java中添加下面方法
@Test
public void testAddUser(){
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setUsername("周芷若");
user.setPassword("111");
user.setBirthday(new Date());
user.setSex("女");
user.setAddress("峨眉山");
userMapper.addUser(user);
System.out.println("返回自增id:"+user.getId());
//sqlSession.commit();
}
在UserMapper.java中添加对应的属性
void addUser(User user);
在UserMapper.xml中添加sql语句如下
<!--
useGeneratedKeys="true":使用自增id
keyProperty="id":回填到实体类的哪个属性
-->
<insert id="addUser" useGeneratedKeys="true" keyProperty="id" parameterType="cn.fpl1116.pojo.User">
<!--
逐渐回填(返回自增id):插入记录后返回自增的id到参数
keyProperty="id":回填到实体类的哪个属性
order="AFTER":先执行插入,再主键回填
resultType="java.lang.Integer":主键的类型
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
-->
INSERT INTO user(username,password,birthday,sex,address) VALUES(#{username},#{password},#{birthday},#{sex},#{address})
</insert>