Mybatis中insert方法返回 新增主键id
2015-12-24 00:00
525 查看
摘要: 通过mapping新增记录时,通常返回的成功与否,被传来的实体,不能获得创建后对应的id,可以修改mapping中create方法来使实体获得创建后的id
1.controller里面构建实体,去数据库新增记录
如果creatScheduleAdStart方法用到advert数据库表中创建后自增的id,这里是不会取到的
2.修改Mapping
在mapping中,对id="created"的insert加上keyProperty="id" useGeneratedKeys="true" 这两个参数,就可以让
调用这个方法的同时,更新实体advert,让advert获得表记录新增后自增的id
注意:这种方法传入的类型,也就是parameterType要是Map或者是对应的类
1.controller里面构建实体,去数据库新增记录
advert.setStatus(1); ........ //给实体advert中的各个字段赋值 int result = advertService.createdAdvert(advert); if(result==1){ //下面这个方法用到被创建的实体advert ScheduleJob jobStart = scheduleJobManager.creatScheduleAdStart(advert);
如果creatScheduleAdStart方法用到advert数据库表中创建后自增的id,这里是不会取到的
2.修改Mapping
<insert id="created" parameterType="Advert" keyProperty="id" useGeneratedKeys="true"> INSERT INTO <include refid="tb" /> ( <include refid="cols_exclude_id" /> ) VALUES ( <include refid="vals" /> ) </insert>
在mapping中,对id="created"的insert加上keyProperty="id" useGeneratedKeys="true" 这两个参数,就可以让
int result = advertService.createdAdvert(advert);
调用这个方法的同时,更新实体advert,让advert获得表记录新增后自增的id
注意:这种方法传入的类型,也就是parameterType要是Map或者是对应的类
相关文章推荐
- Mac OS X 10.11 系统环境变量配置
- leetcode----Add Two Number 中学到的有关变量在内存中分配的问题
- @EnableAsync annotation metadata was not injected
- win7升级Win10之360百度等升级助手均因系统未激活不可升级
- TL-WR702N 连接有线路由
- 2.1特殊权限之sgid
- 2.2特殊权限之sticky_bit
- 2.3find搜索命令
- 2.4三个时间属性
- 2.5软链接和硬链接
- 2.6 用户名文件
- 2.7密码文件
- 2.8 增加和删除用户组
- 2.9 增加和删除用户
- 3.0 usermod 删除用户属性
- redhat6.1配置163的yum源
- PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
- 网站论坛注册中我同意等待倒记时特效代码
- webpack使用babel 6打包react报错
- XML 和 java对象相互转换