mybatis~2
Posted 菠菜汤圆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis~2相关的知识,希望对你有一定的参考价值。
添加用户
1、映射文件:在User.xml配置文件中添加如下内容
<!-- 保存用户 -->
<insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">
INSERT INTO `user`
(username,birthday,sex,address) VALUES
(#{username},#{birthday},#{sex},#{address})
</insert>
2、测试程序
@Test public void testSaveUser() { // 4. 创建SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); // 5. 执行SqlSession对象执行保存 // 创建需要保存的User User user = new User(); user.setUsername("张飞"); user.setSex("1"); user.setBirthday(new Date()); user.setAddress("蜀国"); sqlSession.insert("saveUser", user); System.out.println(user); // 需要进行事务提交 sqlSession.commit(); // 7. 释放资源 sqlSession.close(); }
保存成功,但是id=0,需要解决id返回不正常的问题。
解决:mysql自增主键返回
通过修改User.xml映射文件,可以将mysql自增主键返回:
<!-- 保存用户 --> <insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User"> <!-- selectKey 标签实现主键返回 --> <!-- keyColumn:主键对应的表中的哪一列 --> <!-- keyProperty:主键对应的pojo中的哪一个属性 --> <!-- order:设置在执行insert语句前执行查询id的sql,还是在执行insert语句之后执行查询id的sql --> <!-- resultType:设置返回的id的类型 --> <selectKey keyColumn="id" keyProperty="id" order="AFTER" resultType="int"> SELECT LAST_INSERT_ID() </selectKey> INSERT INTO `user` (username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address}) </insert>
LAST_INSERT_ID():是mysql的函数,返回auto_increment自增列新记录id值。
以上是关于mybatis~2的主要内容,如果未能解决你的问题,请参考以下文章
[mybatis]动态sql_sql_抽取可重用的sql片段
Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取