mybatis中insert方法跟insertSelective的应用场景 5C

这2个方法的区别我知道,第二个不为null才才入,第一个是null就插入null,
如果数据库设置了默认值,得用insertSelective,那么这2个应用场景有啥不用呢,
我都是用insertSelective

0

4个回答

对于insert:
//插入一条数据
//支持Oracle序列,UUID,类似Mysql的INDENTITY自动增长(自动回写)
//优先使用传入的参数值,参数值空时,才会使用序列、UUID,自动增长
int insert(T record);

对于InsertSelective
//插入一条数据,只插入不为null的字段,不会影响有默认值的字段
//支持Oracle序列,UUID,类似Mysql的INDENTITY自动增长(自动回写)
//优先使用传入的参数值,参数值空时,才会使用序列、UUID,自动增长
int insertSelective(T record);

0
0

工作这么长时间,基本都用insertSelective。如果用到insert就算是用错了。不过insert还是有用的,比如插入的时候顺便置空、或修改了原有的数据等。

0

这是我前几天了解的,很详细,可以看下:https://blog.csdn.net/TofuCai/article/details/82285001

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
通用Mapper中insert方法与insertSelective的区别
insert方法是使用所有的属性作为字段使用[html] view plain copy@Test      public void testInsert() {          User record=new User();          record.setName("sansan");       // 使用所有的属性作为字段使用          this.newUserMapper...
Mybatis中insert中返回主键ID的方法
1、XyzMapper.xml insert id=“doSomething" parameterType="map" useGeneratedKeys="true" keyProperty=“yourId"> ... insert> 或 insert id=“doSomething" parameterType=“com.xx.y
mybatis insert操作 返回主键
问题:最近遇到个问题insert操作我需要返回主键ID,该数据库对应表主键为自增 解决: <insert id="insertSelective" parameterType="com.esint.model.OldPerson" useGeneratedKeys="true" keyProperty="colId"> insert into table..... <...
Mybatis generator 自动生成代码时 ,insert如何返回主键值
如果要让generator自动添加该功能,可以如下配置:                        enableCountByExample="false" enableUpdateByExample="false"                enableDeleteByExample="false" enableSelectByExample="false"
Mybatis初学使用方法总结
MyBatis 简单使用总结
解决mybatis-generator无法生成除insert外的方法的问题
mybatis框架提供了非常好用的逆向工程插件,但是在使用过程中会有很多问题。 我在使用中就遇到了只生成insert和insertSeletive方法,而不生成其他根据primary key查询更新删除的方法。 解决方案: 1.检查数据库中的表是否有主键,如果没有主键是不会生成类似selectByPrimaryKey之类的方法的。 2.检查generatorConfig.xml配置文件中的
mybatis做insert操作的时候 怎么才能返回插入的那条数据的id?
1、useGeneratedKeys=”true” 可以获取自增长的ID 只支持具有自增长方式的那种数据库(mysql, mssql 等 但 oracle 就不支持了 ) 所以可以使用selectKey来获取 eg:<insert id="xxx" parameterType="yyy" useGeneratedKeys="true"> insert into table(...) va
tk mapper使用原生方法insert时主键回显
参考链接地址:https://blog.csdn.net/jie873440996/article/details/75171895 框架使用spring+mybatis; 本人所使用的主键为自增主键,非自定义主键。 使用如下注解: @Id @GeneratedValue(generator = &quot;JDBC&quot;) private Integer id; 插入时使用: pageD...
Springboot 结合mybatis的逆向生成插件tk的insert方法实现uuid类型的主键返回
LZ试了好多方法,最终找到了一个有效的分享给大家。   就是在你需要返回主键的这个实体的mapper.xml文件中覆盖原先InsertMapper&amp;lt;T&amp;gt;中int insert方法 @InsertProvider(type = BaseInsertProvider.class, method = &quot;dynamicSQL&quot;) //这里要注意before是true,LZ试了fals...
MyBatis 执行Insert操作,返回实体对象的主键
1、dao 层定义和Mapper 实现 dao层定义:  int insertSelective(RoleInfo record); Mapper实现:  &amp;lt;insert id=&quot;insertSelective&quot; keyProperty=&quot;sid&quot; parameterType=&quot;com.digipower.erms.domain.RoleInfo&quot;&amp;gt;     &amp;lt;selec...
关于Spring 整合 Mybatis 后,insert操作不返回ID的问题
[url]http://tea-pig.iteye.com/blog/2195818[/url] 搜索引擎关于这个问题找了很多,大部分给出的解释就是: [code=&quot;xml&quot;] select LAST_INSERT_ID() [/code] 可是我在实际使用中,在service层做了注解型配置事务,当一个事务未执行完,select LAST_INSER...
Mapper中insert 顺便返回主键
转自:https://www.cnblogs.com/xingyunblog/p/6243179.html类似下面这段代码一样获取插入后的主键User user = new User(); user.setUserName(&quot;chenzhou&quot;); user.setPassword(&quot;xxxx&quot;); user.setComment(&quot;测试插入数据返回主键功能&quot;); Syste...
关于mybatis generator只有insert方法的解释和处理方法
解释 如果配置文件里面没有做什么 enableSelectByPrimaryKey=&quot;false&quot;, enableUpdateByPrimaryKey=&quot;false&quot;, enableDeleteByPrimaryKey=&quot;false&quot;等奇葩配置,一般情况下是因为mysql-connector-java这个jar包使用了6.x以上的版本 处理办法 简单,如果是做了奇葩配置,那就去掉你的奇葩配置...
tkMyBatis执行insert返回主键
数据库:MySQL 组件:tkMyBatis,和MyBatis有些不同   ActiveTaskLog taskLogDto = new ActiveTaskLog(); taskLogDto.setMemberId(oldMemberId); long taskLogId = iActiveventLogDao.insertTaskLog(taskLogDto); Map&amp;lt;S...
Mybatis generator 自动生成代码时 ,insert返回主键值
mvn mybatis-generator:generate 如果要让generator自动添加该功能,可以如下配置:                        enableCountByExample="false" enableUpdateByExample="false"                enableDeleteByExample="false
【已解决】spring+mybatis+mysql能够select但无法insert,不报错,就是无数据写入
前提:web开发,spring+mybatis+mysql,使用mybatis自动生成插件自动由数据库表单生成各种类、映射文档等等。 症状:在用户注册功能实现时候,发现无法insert用户数据,controller调用insert方法后显示正常,没有报错,model也能正常传递用户信息,但一查数据库,发现并没有数据。 原因:   应该是Dao的相应method没有调用到相应mapper.
mybatis generator自动生成代码时 只生成了insert 而没有其他的
问:大侠们  为什么我用mybatis generator自动生成代码时   只生成了insert 而没有其他的  答:表没设置主键吧。 别的select\update都是根据主键来的。没有就不生成了
MyBatis insert 返回主键的方法
表结构: /*==============================================================*/ /* Table: Dic_City                                              */ /*=====================================================
用mybatis中的insert方法插入数据,返回值为1,但数据库却没有数据
用mybatis中的&amp;lt;insert id=&quot;add&quot; parameterType=&quot;cn.entity.Computer&quot;&amp;gt;  insert INTO MyTable(createModel) VALUES(#{createModel})&amp;lt;/insert&amp;gt;在测试类中写了这个int count = sqlSession.getMapper(ComputerMapper.cla...
mybatis 返回插入数据的逐渐(MySQL)
配置文件书写如下 SELECT LAST_INSERT_ID() INSERT INTO `xxx`.`xxx` ....
解决Mybatis中获取插入后,主键返回值为1问题
0、前言: 作为一名新手,刚刚入手Mybatis中,总是能够发现新大陆,而且不止一次的发现,可能你也问过度娘,不管解决还是没有解决,你都学到了什么。希望我的错误能够帮助你。 1、问题描述: 就是想获取插入用户后,该用户的ID,于是找度娘,告诉我在selectKey中,放一个SQL语句“SELECT LAST_INSERT_ID();”,然后就获取到最后一次插入用户的ID。 &amp;amp;lt;insert i...
mybatis执行insert语句以后返回主键id
在使用mybatis框架的insert操作而恰好主键id是自增的时候,经常要使用到自增后的主键id,这个时候如果mapper.xml文件还和往常一样写就会发现拿不到。楼主在做一个拼团的项目的时候恰好遇到了这个痛点,拼团项目中有一个group团表和一个order订单表,当一个用户开团的时候需要先往group表中增加一条记录,由于设置的是主键自增的这时往group表中添加记录的时候不用自己添加grou...
MyBatis中插入(insert)后返回主键(key)的注解方式
一般我们插入数据后需要知道其自增的主键key是多少,有两种方式: 用@Options注解: 比如这里有个订单(Order)相关的DAO: public interface OrderDao { @Insert(&quot;INSERT INTO ...&quot;) @Options(useGeneratedKeys = true, keyProperty = &quot;id&quot;, keyColumn = &quot;i...
MyBatis insert实体返回主键
一、insert  属性详解    parameterType ,入参的全限定类名或类型别名    keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置    keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中
MyBatis插入数据返回插入对象的主键
方法:在mapper中指定keyProperty属性,示例如下:  主要: useGeneratedKeys="true" keyProperty="userId" Xml代码   insert id="insert" useGeneratedKeys="true" keyProperty="userId" parameterType="com.yhr.p
SSM框架中Mybatis向映射文件(XML)的<insert>元素传入多个数组参数的问题
今天学习做项目用到了Mybatis的批量添加功能,并且向传入多个参数,包括数组 dao层方法如下void insertByArr(@Param("actorid") int actorid, @Param("garry") String[] group, @Param("narry") String[] node);xml映射文件如下 <insert id="insertByArr" use
java mybatis mapper批量插入数据,insert/update/映射属性字段
@MapperEngine public interface BBINBetsLstMapper { public void replaceBBinBet (List list); } mapper.xml文件 id="replaceBBinBet" useGeneratedKeys="true" parameterType="com.ig.gapi.result.bbin.B
mybatis三种批量插入方式
普通for循环插入 public void testInsertBatch2() throws Exception { User user; SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(false); UserDao mapper = sqlSession.ge...
MyBatis在insert插入对象时,返回自增主键失败
B话不多说,直接说结论! 首先你要确定几点 1: 你数据表的ID 是不是 设置了自增?如果没有,那么一切都是徒劳 2: 必须的几个属性你添加了么? useGeneratedKeys=&quot;true&quot;(默认是false) keyProperty=&quot;id&quot; 3: keyProperty 这个设置的是 你传入对象的属性名,不是你数据表的字段 如果以上情况都满足,那么你很有可能犯了一个和我一样...
mybatis执行insert语句,如何返回主键给对象的问题(限主键为整数类型)
大体总结有两个方法: 一、如果数据库指定了主键自增长:       1、在实体类的映射文件 "*Mapper.xml" 文件中: com.go.model.User" >   SELECT LAST_INSERT_ID()   INSERT INTO user(userName,password,comment)values(#{userName},#{password},#{c
mybatis insert 时 null值的报错问题
在用mybatis的时候,特别是在进行update,insert或者delete的时候,如果有的值是null的话,会报错。原因是没有为参数指定jdbcType,所以当值是null的时候,mybatis无法进行转换,解决方法就是在sql的xml文件中,每个参数后面都跟上它的jdbcType。   &amp;lt;insert id=&quot;insertSomething&quot; parameterType=&quot;x...
MyBatis insert数据返回主键ID
1、dao 层添加方法不要加 @Param(&quot;&quot;)  注解2、xml 添加  useGeneratedKeys=&quot;true&quot; keyProperty=&quot;id&quot;   keyProperty=&quot;id&quot;对应主键名称modelpublic class ProjectRole implements Serializable { /** * 主键 */ private i...
【MyBatis】关于MyBatis插入自动增长id的Bean到数据库后返回的id为null的解决办法
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 解决办法其实很简单,只需要为你的**.xml中的insert增加两个属性就可以了。 例如,我的SponsorsMapper.xml中原来的代码如下:<insert id="insertSelective" parameterType="com.uifuture.footer.enti
mybatis的mapper映射文件中insert的用法
insert元素,这个标签还有如下属性: 1,id:命名空间中的唯一标志符,可用来代表这个语句。 2,parameterType:即将传入的语句参数的完全限定类名或者别名 3,flushCash:默认值为true,任何时候只要语句被调用都会清空一级缓存和二级缓存。 4,statementType:对于STATEMENT,PREPARED,CALLABLE,mybatis会分别使用对应的st
Mybatis 在 insert 之后想获取自增的主键 id的正确方式
今天在调试代码时,碰到了莫名其妙的问题,最后还是单步调试时,发现在使用mybatis的insert操作时,返回的值一直是“1”,跟我想象的有些出入,一直以为返回的应该是插入时的id值; Mybatis生成insert接口的用法正解: &amp;lt;insert id=&quot;insert&quot; parameterType=&quot;user&quot;&amp;gt; INSERT INTO `user` (`na...
mybatis 获取insert 返回的主键 和批量插入insert
mybatis 获取insert 返回的主键 id &amp;amp;lt;insert id=&amp;quot;insertSelective&amp;quot; parameterType=&amp;quot;com.vip.collection.manager.sms.entity.SmsTask&amp;quot; &amp;amp;gt; insert into sms_task &amp;amp;lt;trim prefix=&amp;quot;(&amp;quot; suf
【tk.mybatis】使用 tk.mybatis insert 插入数据时出现语法错误
使用 insert 插入数据时,发现 sql 语句语法有错误 发现这个与使用 mybatis-generator-maven-plugin 插件自动生成的代码有关,在生成的实体类上有一个 @Table 注解,发现注解值是 itoke-server-admin.tbsysuser 解决办法: 手动删除多余的数据库,只写上表名 ...
使用通用mapper(tk.mybatis)的insert方法时获取不到自增的主键问题
在写项目的时候使用的dubbo作为内部接口调用的简单分布式系统时,使用通用mapper进行数据插入的时候需要拿到插入后的主键,但是一直获取不到,在网上找了很多方法都试了,但是最后还是获取不到,后面突然觉得会不会是因为分布式的问题返回不到消费者这边来,然后在消费者那里重写了baseService的insert方法,果然获取到了 然后根据业务需求,返回了主键,如果执行影响行数不足1,就返回i ...
mybatis insert插入返回自增长id
mysql插入数据后返回自增ID的方法 方法一是使用last_insert_id  其实在Mybtias框架里使用selectkey这个节点,并设置insert返回值的类型为integer,就可以返回这个id值。 比如: 其实在Mybtias框架里使用selectkey这个节点,并设置insert返回值的类型为integer,就可以返回这个id值。 S
Mybatis Generator 自动生成的mapper只有二个insert方法
我在写代码的时候也遇到了这个问题,找了一个小时都没有找到,最后才发现 是因为我在创建数据库时没有设置主键 所有它无法根据primaryKey生成select、update、delete方法 ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链技术应用场景 教育大数据应用场景