赞
踩
在mapper.xml文件中
<insert id="insertUser" parameterType="User">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select count(*) from user
</selectKey>
insert into user(username,userpwd) values (#{username},#{userpwd});
</insert>
main方法中:
SqlSession session = MybatisUtil.getSqlSession();
System.out.println(session);
UserMapper mapper = session.getMapper(UserMapper.class);
User user = new User();
user.setId(5);
user.setUsername("a");
user.setUserpwd("bbbb");
int a = mapper.insertUser(user);
System.out.println(user.getId());
System.out.println("a: " + a);
打印出结果:
14
a=1
说明了:KeyProperty:将查询得到的主键值设置到paramaterType指定的对象的哪个属性。
数据库里的值改了没有?
没有插入id为14的值,将order改成Before:
<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
select count(*) from user
</selectKey>
同样是没有的,selectKey部分是不会操作数据库的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。