mybatis中useGeneratedKeys和keyProperty的使用
领域模型主键属性是shopId,使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型shopId属性中,
配置参考如下:
<insert id="insert" parameterType="com.XXX.ecc.cloudbiz.domain.shop.ShopBaseInfo" useGeneratedKeys="true" keyProperty="shopId">
INSERT INTO
<include refid="TABLE"/>
(
shop_name,
shop_keeper_id,
shop_desc,
shop_template_id,
shop_logo_url,
shop_backgroud_pic,
shop_type,
sync_status,
xx_shop_id,
platform_id,
created,
modified,
yn
)VALUES(
#{shopName},
#{shopKeeperId},
#{shopDesc},
#{shopTemplateId},
#{shopLogoUrl},
#{shopBackgroudPic},
#{shopType},
#{syncStatus},
#{xxShopId},
#{platformId},
#{created},
#{modified},
#{yn}
)
</insert> java代码Demo测试类:
//测试类
public class TestInsert{
@Resource
private ShopBaseInfoMapper shopBaseInfoMapper;
public Long insert(@NotNull ShopBaseInfo entity) {
ShopBaseInfo shop = new ShopBaseInfo();
shop.setPlatformId(platformId);
shop.setShopType(1);//todo 根据用户信息--------设定店铺类型
if(StringUtils.isBlank(user.getJcbNickName())){
shop.setShopName(user.getJcbMobile()+"的店");
}else{
shop.setShopName(user.getJcbNickName()+"的店");
}
shop.setShopLogoUrl(user.getJcbHeader());
shop.setShopKeeperId(user.getId());
shop.setShopDesc("掌柜比较懒,。。。。。。。。。。。");
shop.setShopTemplateId(10001);
shop.setCreated(new Date());
shop.setModified(new Date());
shop.setYn(1);
shopBaseInfoMapper.setUTF8MB4();
shopBaseInfoMapper.insert(shop);
log.info("platformId is {},userid is {},shopId is {}",platformId,userId,shop.getShopId());
//todo 调用insert方法后,会怎么给shop对象的shopId属性赋值,所以方法直接返回shopId就可以。
return shop.getShopId();
}
}
//Mapper类
public interface ShopBaseInfoMapper{
/**
* 新增
* @param entity
* @return
*/
Integer insert(ShopBaseInfo entity);
}
mybatis中useGeneratedKeys和keyProperty的使用的更多相关文章
- mybatis中useGeneratedKeys和keyProperty的作用
在使用mybatis时,常常会出现这种需求: 当主键是自增的情况下,添加一条记录的同时,其主键是不能使用的,但是有时我们需要该主键,这时我们该如何处理呢?这时我们只需要在其对应xml中加入以下属性即可 ...
- mybatis 中 useGeneratedKeys 和 keyProperty 含义
MyBatis如何获取插入记录的自增长字段值: 第一步: 在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Ja ...
- mybatis中 keyProperty="id" 的作用
keyProperty="id"的作用是: 一般都是结合数据库自动生成主键来使用,由于是数据库生成的主键, 所以在这个对象持久化到数据库之前是对象中的这个属性是没有属性值的,但是在 ...
- mybatis中的变量#与$
ibatis中使用select top #num# * from tableName出现错误.由于初次用ibatis还不知道在它里边拼写SQL语句的一些规则,导致一些自认为很平常的SQL语句,在它这里 ...
- MyBatis中主键回填的两种实现方式
主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大 ...
- 深入浅出mybatis之useGeneratedKeys参数用法
目录 在settings元素中设置useGeneratedKeys参数 在xml映射器中配置useGeneratedKeys参数 在接口映射器中设置useGeneratedKeys参数 在MyBati ...
- MyBatis中映射器Mapper概述
MyBatis真正强大之处在于它的映射器.因为它异常强大并且编写相对简单,不仅比传统编写SQL语句做的更好并且能节省将近95%的代码量 XML中顶级元素汇总 cache: 给定命名空间的缓存配置 ca ...
- mybatis中_parameter使用和常用sql
mybatis中_parameter使用和常用sql mybatis中_parameter使用和常用sql 在用自动生成工具生成的mybatis代码中,总是能看到这样的情况,如下: <sel ...
- mybatis中mysql和oracle的差异
1.applicationContext.xml中的配置差异: 在applicationContext.xml的数据源dataSource的配置中,mysql数据库需要心跳包的配置,而oracle中不 ...
随机推荐
- Detach a Database
https://msdn.microsoft.com/en-us/library/ms191491.aspx 方法一:Using SQL Server Management Studio To det ...
- Makefile 文件怎么写
跟我一起写Makefile:MakeFile介绍 Makefile 使用总结 1. make 命令与 Makefile 文件 在 Linux 平台,执行 make 命令时,会在当前目录下寻找 Make ...
- 97. ExtJS之EditorGridPanel afteredit属性
转自:https://zccst.iteye.com/blog/1328869 1. 之前大多用Ext.grid.GridPanel,现在需要可编辑功能,发现比以前稍复杂一些. 就是需要对指定列进行可 ...
- Coursera Algorithms week1 算法分析 练习测验: 3Sum in quadratic time
题目要求: Design an algorithm for the 3-SUM problem that takes time proportional to n2 in the worst case ...
- BKDRHash 算法 php 版本( 可用于 字符串 hash 为int 转)
<?php function BKDRHash($str) { $seed = 131; // 31 131 1313 13131 131313 etc.. $hash = 0; $cnt = ...
- Django day08 多表操作 (五) 聚合,分组查询 和 F,Q查询
一:聚合,分组查询 二:F, Q查询
- 基于mybatis向oracle中插入数据的性能对比
数据库表结构: 逐条插入sql语句: <insert id="insert" parameterType="com.Structure"> INSE ...
- JS排序之快速排序
JS排序之快速排序 一个数组中的数据,选择索引为(2/数组长度)的那个数据作为基数,数组中的其他数据与它对比,比它数值小的放在做数组,比它数值大的放在右数组,最后组合 左数组+基数+右数组,其中,左数 ...
- (转)Vue 爬坑之路(二)—— 组件之间的数据传递
Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...
- 关于Core里的 StartUp里的方法的理解。
public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; ...