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中不 ...
随机推荐
- 复习--最小生成树&&并查集
我个人比较喜欢Kruskal算法,所以就把这个方法写了一下,但过不了洛谷,70分. 思路是先全读入,再排序,一条一条加边.运用并查集. #include<iostream> #includ ...
- codeforces round #420 div2
A:暴力枚举 模拟 #include<bits/stdc++.h> using namespace std; ; int n; int a[N][N]; int main() { scan ...
- Python入门 来点栗子
查天气(1) http://wthrcdn.etouch.cn/weather_mini?citykey=101280804 http://wthrcdn.etouch.cn/WeatherApi?c ...
- 10.3.3 WebView的几个常见功能
(1)背景设置,例如下面的代码. webView.setBackgroundColor(0);//先设置背景色为transparent webView.setBackgroundResource(R. ...
- Node.js+express 4.x 入门笔记
一.新建node项目并实现访问 二.在express4.x下,让ejs模板文件,使用扩展名为html的文件 三.实现路由功能 四.session使用 五.页面访问控制及提示 六.代码下载地址 一.新建 ...
- E20170828-mk
utils 工具类; 效用; 实用工具; 实用菜单; Documentation n. 记录; 证明某事属实的证据; 参考资料; 文献的编集,文件分类; receive vt. 收到; 接待; ...
- 手写DAO框架(一)-从“1”开始
背景: 很久(4年)之前写了一个DAO框架-zxdata(https://github.com/shuimutong/zxdata),这是我写的第一个框架.因为没有使用文档,我现在如果要用的话,得从头 ...
- radis多个盘并发IO
IO就是对磁盘的读/写. 一次IO,就是发出指令+执行命令. 磁盘IO的时间=寻道时间+数据传输时间 单盘不能并发IO. radis多个盘并发IO. 影响IO的最大因素是寻道时间. 影响电脑速度:cp ...
- CSS选择器优先级计算
优先级从高到低排列,浏览器优先满足前面的规则 1,!important优先级最高 2,内联样式 3,作者>读者>浏览器 4,优先级权重加法 id选择器+100/个 类/伪类选择器+10/个 ...
- kotlin第一个项目的搭建
怎么在Android Studio中使用Kotlin? 1.使用Android Studio的插件 2.将Android Studio升级到3.0版本:目前不推荐,因为3.0的版本目前还是Dev Ch ...