insert和insertSelective区别

article/2025/9/12 8:40:08

使用逆向工程生成的代码做一个添加时通常都会给出两个答案,如题目想要增加一条数据会让你选择insert或者insertSelective


两者的区别在于如果选择insert 那么所有的字段都会添加一遍即使没有值

 <insert id="insert" parameterType="com.ego.pojo.TbContentCategory" >insert into tb_content_category (id, parent_id, name, status, sort_order, is_parent, created, updated)values (#{id,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{sortOrder,jdbcType=INTEGER}, #{isParent,jdbcType=BIT}, #{created,jdbcType=TIMESTAMP}, #{updated,jdbcType=TIMESTAMP})</insert>

但是如果使用inserSelective就会只给有值的字段赋值(会对传进来的值做非空判断)

<insert id="insertSelective" parameterType="com.ego.pojo.TbContentCategory" >insert into tb_content_category<trim prefix="(" suffix=")" suffixOverrides="," ><if test="id != null" >id,</if><if test="parentId != null" >parent_id,</if><if test="name != null" >name,</if><if test="status != null" >status,</if><if test="sortOrder != null" >sort_order,</if><if test="isParent != null" >is_parent,</if><if test="created != null" >created,</if><if test="updated != null" >updated,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="id != null" >#{id,jdbcType=BIGINT},</if><if test="parentId != null" >#{parentId,jdbcType=BIGINT},</if><if test="name != null" >#{name,jdbcType=VARCHAR},</if><if test="status != null" >#{status,jdbcType=INTEGER},</if><if test="sortOrder != null" >#{sortOrder,jdbcType=INTEGER},</if><if test="isParent != null" >#{isParent,jdbcType=BIT},</if><if test="created != null" >#{created,jdbcType=TIMESTAMP},</if><if test="updated != null" >#{updated,jdbcType=TIMESTAMP},</if></trim></insert>

如果不明白的话提供一个简单的例子,再结合上面的源码体会一下

前提Goods商品表里面有三个字段:id,name,price 1.此时我只设置了一个字段名字:  Goods g = new Goods();  g.setName("手机");insertSelective(g);insertSelective执行对应的sql语句的时候,只插入对应的name字段;(主键是自动添加的,默认插入为空)insert into tb_goods (id,name) value (null,"手机");注意:此时是没有price什么事的2、如果使用insert则是不论你设置多少个字段,统一都要添加一遍,不论你设置几个字段,即使是一个。Goods g=new Goods();g.setName("冰箱");insert(g)insert执行对应的sql语句的时候,统一都要添加一遍;insert into tb_goods (id,name,price) value (null,"冰箱",null);注意:price也在哦!!
结束!!!

http://chatgpt.dhexx.cn/article/GPm9MNli.shtml

相关文章

Inserted和Deleted在insert、update、delete的简单使用

Inserted和Deleted在insert、update、delete的简单使用 Inserted表和Deleted表,仅仅在触发器运行时存在。当insert、update、delete操作时&#xff0c;可使用借助两个表来输出&#xff08;使用OUTPUT关键字&#xff09;操作前后的数据的变化。 Insert Update Delete Insert…

定义自定义指令;inserted()、update()

自定义指令的意义&#xff1a;对普通DOM元素进行底层操作&#xff1b; 作用 &#xff1a;可以获取到底层的dom&#xff0c;拿到想要的节点&#xff0c;从而进行操作&#xff1b; 实际应用&#xff1a;可以通过指令知道什么时候dom创建完成&#xff0c;从而进行依赖dom的库的初…

29.VUE自定义指令directive和inserted

VUE自定义指令directive和inserted 1.什么事自定义指令1.2使用自定义指令的方式 2.设置自定义组件2.1 设置全局指令2.2 设置私有指令2.3 钩子函数3. 案例 1.什么事自定义指令 指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的值预期是单个 JavaScript 表达式 (v-for 例…

echarts中x轴 y轴配置(字体颜色,线的颜色,分割线,y周单位颜色)。vue中直接使用echarts以及vue中使用vue-echarts如何配置横向渐变与纵向渐变(后者适用于前者)

vue中直接使用echarts //var myChart this.$echarts.init(document.getElementById("echart-twoline")); //vue var myChart echarts.init(document.getElementById("echart-twoline"));//jquery var option {backgroundColor: "#323a5e",…

Echarts折线图X轴Y轴图例位置调整

当X轴数据过多时Echarts会默认显示一半 如下图只显示奇数月份 Echarts加入axisLabel然后将interval设置为0就会将横轴全部显示 看一下效果 但是信息太多,看起来黏在了一起,我们可以让它-30度角倾斜显示 同样在axisLabel将rotate设置为-30,再看一下效果 这下都显示出来的,但…

修改echarts的x轴y轴的刻度和刻度线文本颜色和xy轴的轴线颜色和标题title的字体颜色

1&#xff0c;x轴y轴都是一样的&#xff1a; 1.1修改刻度文本颜色&#xff1a; 找到xAxis和yAxis&#xff1a; 添加如下代码&#xff1a;&#xff08;和data和type同级并列&#xff09; axisLabel: {show: true,textStyle: {color: #fff} } 如图&#xff1a; 1.2修改xy轴的轴…

转:echarts图表x,y轴的设置

转自&#xff1a; https://www.cnblogs.com/cjh-strive/p/11065005.html 每到用echarts这门技术去画图的时候&#xff0c;我们大多人都是直接从echarts的官网的案例找相应的案例直接把代码复制到开发软件上基本随便一改就能使用&#xff0c;但是这种情况基本都是在练习的时候和…

r语言plot函数x轴y轴名字_R语言中绘图的注释函数小结

我们知道一个漂亮而清晰的图像的形成指定缺不了图像中细节的注释。那么今天我们就来总结下在R语言中那些注释函数。 首先,我们看下文本注释函数:text(),mtext(), legend()。这些函数都是R语言内置的基础函数,我们看下具体的实例: 1. text() 注释绘图中的任意点。 其中主要…

echarts的x轴y轴的颜色改变

在操作echarts时&#xff0c;需求要求echarts的xy轴的颜色要与图形的颜色一致。 图1&#xff1a; 图2&#xff1a; 解决方案&#xff1a; 代码展示&#xff1a; var myChart1; $(function() { document.getElementById("begin1").flatpickr(); document.getEl…

r语言plot函数x轴y轴名字_Matplotlib入门-1-plt.plot( )绘制折线图

在Python学堂1-8中,我们通过一个实例(温湿度变化曲线对比分析图)对Matplotlib模块中的常用折线图进行了初步的认知学习。本章及后续几章内容是对前面内容的总结以及细化。系统性的带领大家共同学习Matplotlib中的众多知识点。 废话不多说,直接开始 Matplotlib模块的导入 im…

echarts如何优雅的去掉x轴y轴

option_column: {color: [#9D509F],grid: {left: 0,right: 0,bottom: 0,top: 0,// grid 区域是否包含坐标轴的刻度标签containLabel: false},xAxis: [{type: category,boundaryGap: false,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun],show: true}],yAxis: [{show: false,axisLi…

echarts柱形图X轴Y轴相关配置

可配置XY轴刻度线&#xff0c;字体大小&#xff0c;柱形图大小颜色等 const options {tooltip: {trigger: axis,axisPointer: {// 坐标轴指示器&#xff0c;坐标轴触发有效type: shadow // 默认为直线&#xff0c;可选为&#xff1a;line | shadow},textStyle: {// 鼠标hover…

echarts中的x轴y轴颜色,文字颜色改变

echarts中的x轴y轴颜色&#xff0c;文字颜色改变 原先的图改变颜色之后的图重点代码全代码 在更换背景之后&#xff0c;原图中的xy轴的颜色不明显或是想改变XY轴的颜色以及轴上的文字颜色。 原先的图 改变颜色之后的图 重点代码 axisLine:{lineStyle:{//改变xy轴线条的颜色col…

echarts markline X轴 Y轴 添加标识线

一、X轴添加标识线 效果&#xff1a; 代码&#xff1a; markLine: {symbol: [none, none],itemStyle: {normal: {lineStyle: {type: dashed,color: red,},label: {show: true,position: end,distance: 20,textStyle: {color : red,fontSize: 14,},formatter: function() {ret…

matplotlib中x轴y轴字号或字体修改

#修改matplotlib中x轴y轴字体大小 import matplotlib.pyplot as plt import numpy as np plt.rcParams[font.sans-serif][SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus]False #显示英文 plt.rcParams[font.size] 23 #设置字体大小&#xff0c;全局…

matplotlib 笔记:设置x轴 y轴文字

原本的图&#xff1a; import numpy as np import matplotlib.pyplot as plt lstrange(10000) anp.random.choice(lst,150) plt.figure(figsize(15,5)) plt.plot(a) 设置x轴y轴文字&#xff1a; plt.figure(figsize(15,5)) plt.xticks(range(0,100,10)) plt.yticks(range(0,5…

Echarts直角坐标系x轴y轴属性设置大全

1、Echarts版本 "echarts": "^5.3.3", 2、最简单的直角坐标系&#xff0c;以柱状图为例。 常见的直角坐标系&#xff0c;x轴设置type: category&#xff0c;为类目轴&#xff0c;适用于离散的类目数据&#xff1b;y轴设置type: value&#xff0c;为数值轴…

x轴z轴代表的方向图片_x轴y轴z轴代表的方向_x轴y轴z轴代表的方向图

最近很多童鞋们在寻求关于x轴y轴z轴代表的方向的解答,今天充编为大家汇集5条解答来给大家真解! 有79%小白玩家认为x轴y轴z轴代表的方向_x轴y轴z轴代表的方向图值得一读! x轴y轴z轴代表的方向 1.xyz轴指哪些方向 展开全部 X轴指向上下 上为正 Y轴指向左右 右为正 Z轴指向前后…

OpenGL(十七)——Qt OpenGL在三维空间移动位图(会动的星星)

OpenGL&#xff08;十七&#xff09;——Qt OpenGL在三维空间移动位图(会动的星星) 一、场景 上一篇介绍了融合的概念&#xff0c;以及要实现融合效果的函数glBlendFunc()&#xff0c;融合&#xff0c;本篇结合之前的融合和物体移动和旋转一起实现旋转的星星。这其中就要用到…