mybatis——insert的selectKey

在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部分是不会操作数据库的。

猜你喜欢

转载自blog.csdn.net/qq_22059611/article/details/82871118
今日推荐