(三)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属性对应的值。

猜你喜欢

转载自blog.csdn.net/Steriles_/article/details/81629138