Mybatis执行添加修改操作返回记录ID
XML文件中单条数据操作:
<insert id="insert" parameterType="com.demo.bean.User"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into user
(username,password) values (#{username},#{password})
</insert>
keyProperty 和 keyColumn里的值根据自己表里的ID字段名自行设置。
===================================================
代码调用例子:
User u = new User();
u.setUsername("user1");
u.setPassword("123456");
int i = userdao.insert(u);
System.out.println("i : " + i);
System.out.println("id : " + u.getId());
===================================================
结果:
i : 1
id : 19
执行返回的 i 永远是影响数据行数;这个id,是mybatis自己填充进User对象中的。
批量添加也是一样的:
<insert id="insertList" useGeneratedKeys="true" keyProperty="id"
keyColumn="id">
insert into user (username,password) values
<foreach collection="list" item="item" separator=",">
(#{item.username},#{item.password})
</foreach>
===================================================
User u1 = new User("user2", "123456");
User u2 = new User("user3","1234567");
List<User> userlist = new ArrayList<>();
userlist.add(u1);
userlist.add(u2);
int j = userdao.insertList(userlist);
System.out.println("j : "+j );
System.out.println("u1 : " + u1.getId());
System.out.println("u2: " + u2.getId());
===================================================
结果:
j : 2
u1 : 20
u2: 21
以上是添加后返回数据ID值的例子,修改的模式和这个是一样的。