MyBatis添加操作
实现添加用户
使用的sql: INSERT INTO `user`
(username,birthday,sex,address) VALUES (‘黄忠’,‘2016-07-26’,‘1’,‘三国’)
在User.xml配置文件中添加如下内容:
INSERT INTO `user`
(username,birthday,sex,address)
VALUES
(#{username},#{birthday},#{sex},#{address})
测试程序
MybatisTest中添加测试方法如下:
@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返回不正常的问题。
查询id的sql SELECT LAST_INSERT_ID()
通过修改User.xml映射文件,可以将mysql自增主键返回: 如下添加selectKey 标签
SELECT LAST_INSERT_ID()
INSERT INTO
`user` (username,birthday,sex,address)
VALUES
(#{username},#{birthday},#{sex},#{address})
LAST_INSERT_ID(): 是mysql的函数,返回auto_increment自增列新记录id值。
注意这里使用的order是“AFTER”
运行结果: 返回的id为48,能够正确的返回id了。
需要增加通过select uuid()得到uuid值
SELECT LAST_INSERT_ID()
INSERT INTO
`user` (username,birthday,sex,address)
VALUES
(#{username},#{birthday},#{sex},#{address})
注意这里使用的order是“BEFORE”