(三)Mybatis的入门教程—— 获取自增主键的值
这里获取到的SqlSession是不会自动提交数据的;
需要手动提交数据;当然也要注意每次会话结束,就要关闭一下。
如果传入true/false,作为是否自动提交的判断,则可以省去手动提交的步骤
mysql支持自增主键,自增主键值的获取;
同样,mybatis也是利用statement.getGenreatedKeys( )这个方法的。
在sql映射文件中的sql语句的标签中添加如下属性:
useGeneratedKeys="true" 使用自增主键获取主键值策略
KeyProperty=“id” 指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javabean的哪个属性,比如这里是封装给id这个属性的。
举例:
测试结果:
如果数据库非自增的话处理方法:
举例:Oracle就是不支持自增的,但是Oracle是使用序列来模拟自增的。每次插入的数据的主键是从序列中拿到的值。
在selectKey标签中可以编写查询主键的sql语句;
order="BEFORE"属性表示该查询语句在插入语句之前运行。
EMPLOYEES_SEQ.nextval 在Oracle中是指当前序列的下一个值,每次递增1。
运行顺序:先运行selectKey查询id的sql,查出id值封装给javabean的id属性;再运行插入的sql,就可以取出id属性对应的值。