selectKey标签详解
1.为什么要使用selectKey
数据库主键包括自增和非自增,有时候新增一条数据不仅仅知道成功就行了,后边的逻辑可能还需要这个新增的主键,这时候再查询数据库就有点耗时耗力,我们可以采用selectKey来帮助我们获取新增的主键
2.具体实现demo
查询数据库最简单的几步
2.1 controller
@Controller
public class SelectKeyController {@AutowiredSelectKeyServiceImpl selectKeyService;public Integer String(){Goods goods = new Goods();goods.setAmount("100");goods.setGname("红烧肉");goods.setMid("666666");goods.setPrice("25");int insert = selectKeyService.insert(goods);System.out.println("执行成功条数: " + insert);System.out.println(goods.getId());return goods.getId();}}
2.2 service
@Service
public class SelectKeyServiceImpl implements SelectKeyService {@AutowiredSelectKeyMapper selectKeyMapper;@Overridepublic int insert(Goods goods) {int insert = selectKeyMapper.insert(goods);return insert;}
}
2.3 mapper
public interface SelectKeyMapper {int insert(Goods goods);}
2.4 实体类(根据自己数据库表来写)
@Data
public class Goods {//自增主键private Integer id;private String mid;private String gname;private String price;private String amount;private String imageName;}
3.mapper.xml 文件
<mapper namespace="com.example.wjtweb.mapper.SelectKeyMapper"><insert id="insert" parameterType="com.example.wjtweb.pojo.Goods"><selectKey keyProperty="id" order="AFTER" resultType="Integer">SELECT LAST_INSERT_ID()</selectKey>INSERT INTO Goods (MID,GNAME,PRICE,AMOUNT,imageName)VALUES (#{mid},#{gname},#{price},#{amount},#{imageName});</insert></mapper>
selectKey 会将 SELECT LASTINSERTID()的结果放入到传入的model的主键里面,keyProperty 对应的model中的主键的属性名,这里是 Goods 中的id,因为它跟数据库的主键对应order AFTER 表示 SELECT LASTINSERTID() 在insert执行之后执行,多用与自增主键,BEFORE表示SELECT LASTINSERTID() 在insert执行之前执行,这样的话就拿不到主键了,这种适合那种主键不是自增的类型resultType 主键类型
4.输出结果
查询数据库
selectKey标签详解相关推荐
- selectKey标签详解(*)
1.为什么要使用selectKey 数据库主键包括自增和非自增,有时候新增一条数据不仅仅知道成功就行,后边的逻辑可能还需要这个新增的主键,这时候再查询数据库就有点儿耗时耗力,我们可以采用selectK ...
- HTML marquee标签详解
HTML marquee标签详解 在论坛默认的编辑状态下,我们可以通过UBB语法的move和fly语句让对象动起来,但功能很简单,只是平行地移动.而我们使用HTML的Marquee语句则可以产生更多的 ...
- 前端基础-HTML的的标签详解
阅读目录 一.head内常用标签 二. HTML语义化 三. 字符实体 四. h系列标签 五. p标签 六. img标签 七. a标签 八. 列表标签 九. table标签 十. form标签 一. ...
- W3C中meta标签详解
2019独角兽企业重金招聘Python工程师标准>>> meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <meta ...
- HTML基本标签详解与运行截图
Web前端基础修炼 HTML基本标签详解与运行截图 CSS基本操作详解及截图演示 JavaScript基础(ECMAScript) JavaScript中DOM操作 JavaScript中BOM操作 ...
- JSF标签详解(全)
转自:https://wenku.baidu.com/view/82b84b255901020207409c87.html :https://blog.csdn.net/qq_36411874/art ...
- SEO技巧:Meta标签详解
网页设计:Meta标签详解 您的个人网站即使做得再精彩,在"浩瀚如海"的网络空间中,也如一叶扁舟不易为人发现,如何推广 个人网站,人们首先想到的方法无外乎以下几种: ●在搜索引擎中 ...
- java foreach标签_Java中Velocity foreach循环标签详解
Java中Velocity foreach循环标签详解 Java Velocity中foreach循环可以很容易的遍历数组或者集合. 定义 #foreach( $elem in $allElems) ...
- Div与Span标签详解
Div与Span标签详解 一.DIV 1.简介 2.作用 3.案例 二.span 1.简介 2.语法 3.案例 一.DIV 1.简介 在html中布局使用最多标签为div, 我们通常将网页重构说成di ...
最新文章
- UA STAT687 线性模型理论I 线性模型概述
- Javascript 变量、函数的声明
- 301转向和网址规范化
- [ARC074C] RGB Sequence(dp)
- java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架
- matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...
- jquery水平垂直居中_Java Web应用程序集成的jQuery UI选项卡(水平和垂直)示例
- Linux下杀僵尸进程办法
- cad统计面积长度插件vlx_cad计算总长度插件
- Java教程:Java分割字符串(spilt())
- kali 安装 netspeed 扩展
- Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection(速读啊)内含与u-shape的对比
- 存储历史(从古老的绳子记忆到如今)
- 中国国内可用API合集
- Linux-CentOS 安装配置ExifTool
- iOS Technical Support For All-AFastRecord
- 宇宙最强vscode教程
- TodoList反选
- 辽宁省内计算机专业本科大学排名,辽宁省本科院校排名
- 【智能优化算法-遗传算法】基于遗传算法求解单目标优化问题(实数编码)附matlab代码