mybatis 向数据库插入数据时获取其主键值(序列值)的实现小记
来源:互联网 发布:可以看腐剧的软件 编辑:程序博客网 时间:2024/05/21 01:32
本文以oracle数据库为例,简单说明(演示项目用的springboot+mybatis+oracle,只贴部分关键代码):
分两种情况:
01、在mapper接口传参时,以java实体类传参;
public interface UserMapper { int insertUser(@Param("user") User user);}
02、在mapper接口传参时,以map传参;
public interface UserMapper { int insertUser(@Param("paramMap") Map<String, Object> paramMap);}
首先第一种情况(01、在mapper接口传参时,以java实体类传参)
首先创建一个User实体类:
public class User {private Integer id;private String name;set get...方法忽略}然后在xml中加如下代码(暂不解释代码,在"02、"统一解释):
<insert id="insertUser" parameterType="com.test.User" > <selectKey keyProperty="id" resultType="int" order="BEFORE" > select USER_SEQ.nextval from DUAL </selectKey> insert into USER (id, name) values (#{id}, #{name})</insert>在业务层的代码如下:
User user = new User();user.setName("zhangsan");//向用户表中新加一个用户,返回数据库受影响的行数int count = userMapper.insertUser(user);//获取新用户的主键id值,并打印到控制台System.out.print(user.getId());
其次第二种情况下(02、在mapper接口传参时,以map传参)
首先在xml中加如下代码:
<insert id="insertUser" parameterType="hashMap" > <selectKey keyProperty="paramMap.id" resultType="int" order="BEFORE" > select USER_SEQ.nextval from DUAL </selectKey> insert into USER (ID, NAME) values (#{paramMap.id}, #{paramMap.name})</insert>
对上面代码简单解释一下:order = "BEFORE" 代表在执行insert语句之前先执行selectKey中的语句,这时我们先获取了User表的序列的下一个值,keyProperty="paramMap.id" 就是将获取到的序列值赋值给paramMap中的id,这时再执行insert语句的时候#{paramMap.id} 就已经是获取到的序列值了,这样我们在程序中也就获取到了新插入数据的id值,关键代码在下面贴上;
然后在代码里面(service层或者controller层),调用dao层时添加如下代码(只贴关键代码)
@Autowiredprivate UserMapper userMapper;
Map<String, Object> paramMap = new HashMap<String, Object>();paramMap.put("id", null);paramMap.put("name","zhangsan");//向用户表中新加一个用户,返回数据库受影响的行数int count = userMapper.insertUser(paramMap);//获取新用户的主键id值,并打印到控制台System.out.print(paramMap.get("id").toString());
阅读全文
0 0
- mybatis 向数据库插入数据时获取其主键值(序列值)的实现小记
- 用jdbc向数据库插入数据后获取生成的主键值
- 【Mybatis】数据插入数据库时,获取自增主键
- mybatis向mysql插入数据后返回插入的主键值
- JAVA 向数据库中插入数据并获取主键的方法(逐渐补充)
- 数据插入数据库中获取相应的主键值
- mybatis获取插入数据时自动生成的主键id
- mybatis获取插入数据主键
- 获取当前插入数据库的主键值
- mybatis的insert元素属性详解 及 在insert插入数据获取主键id的值
- mybatis的insert元素属性详解 及 在insert插入数据获取主键id的值
- sql server里获取向数据库插入数据后返回新插入行的主键
- 【亲测】mybatis使用注解方式插入数据后获取自增长的主键值
- MyBatis使用注解方式插入数据后获取自增长的主键值
- mybatis使用注解方式插入数据后获取自增长的主键值
- 用mybatis实现返回刚插入表数据记录的主键值id
- Mybatis 插入数据后返回主键值
- mybatis插入数据之后获得主键值
- 跬步系列
- React全家桶构建一款Web音乐App实战3
- Node.js安装及环境配置之Windows篇
- linux下QT添加第三方库
- ajax提交表单
- mybatis 向数据库插入数据时获取其主键值(序列值)的实现小记
- 快速排序
- 文本框绑定enter事件后,除了执行绑定文本框方法外,页面再刷新一次
- python基础1
- Gobblin Rest Api
- js实现弹窗
- opencv3.0 无法使用FeatureDetector.SURF
- python刷题—转换编程思想到python!
- Java中堆和栈的基本概念