首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在mybatis生成器中通过配置用updateByPrimaryKeySelective设置null

在MyBatis生成器中,可以通过配置使用updateByPrimaryKeySelective来设置null值。updateByPrimaryKeySelective是MyBatis提供的一个方法,用于根据主键更新表中的记录,但只更新非空字段。

要在MyBatis生成器中配置使用updateByPrimaryKeySelective设置null值,可以按照以下步骤进行操作:

  1. 打开MyBatis生成器的配置文件(通常是一个XML文件),找到对应的表的生成配置。
  2. 在生成配置中找到updateByPrimaryKeySelective节点,该节点用于配置根据主键更新记录的SQL语句。
  3. 在updateByPrimaryKeySelective节点中,可以添加需要设置为null的字段。可以使用以下语法来设置字段为null: <if test="fieldName == null">columnName = null,</if> 其中fieldName是Java对象中对应的字段名,columnName是数据库表中对应的列名。
  4. 将配置保存并重新生成代码。

通过以上配置,当使用updateByPrimaryKeySelective方法更新记录时,会根据配置将指定字段设置为null。这样可以灵活地控制更新操作中的字段值。

以下是一个示例配置:

代码语言:txt
复制
<update id="updateByPrimaryKeySelective" parameterType="com.example.User">
  update user
  <set>
    <if test="name == null">name = null,</if>
    <if test="age == null">age = null,</if>
    <if test="email == null">email = null,</if>
  </set>
  where id = #{id}
</update>

在上述示例中,假设有一个名为User的Java对象,包含name、age和email字段。配置中使用了if语句来判断字段是否为null,如果为null,则将对应的列设置为null。最后使用where条件指定更新的记录。

请注意,以上示例仅为演示目的,实际配置中需要根据具体的表结构和字段进行调整。

推荐的腾讯云相关产品:腾讯云数据库(TencentDB)和腾讯云云服务器(CVM)。

  • 腾讯云数据库(TencentDB):腾讯云提供的稳定可靠的云数据库服务,支持多种数据库引擎,包括MySQL、SQL Server、MongoDB等。可根据业务需求选择适合的数据库类型和规格,提供高可用、高性能的数据库服务。了解更多信息,请访问:腾讯云数据库
  • 腾讯云云服务器(CVM):腾讯云提供的弹性计算服务,可快速创建和管理云服务器实例。通过CVM,您可以轻松部署和运行应用程序、网站和服务。了解更多信息,请访问:腾讯云云服务器
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Data Access 之 MyBatis(八)- MyBatis 通用 Mapper(Part B)

// 保存一个实体,null的属性不会保存,会使用数据库默认值 int insertSelective(T record); 2.5.1 insert 方法 在PorscheService增加save...(T record); // 根据主键更新属性不为null的值 int updateByPrimaryKeySelective(T record); 2.6.1 updateByPrimaryKeySelective...QBC查询同时可以设置排序、去重、设置查询的字段等,在getPorscheByPriceAndStock测试方法增加相关代码, porscheExample.setDistinct(true);...5.2 使用通用Mapper的逆向工程 新建一个项目common-mapper-mbg,该项目的用到的依赖、Spring配置MyBatis配置与general-mapper项目用到的一致,差异在于新建的...在common-mapper-mbg项目的pom.xml文件增加通用Mapper的代码生成器依赖及maven插件,通过maven插件执行代码生成器生成代码,通过Java代码或者命令行的方式也可运行代码生成器

60510
  • Mybatis逆向工程(模板)

    -- 配置生成pojo的序列化的插件,mybatis支持很多插件,这些插件都在 org.mybatis.generator.plugins包下 --> <plugin type="org.<em>mybatis</em>.generator.plugins.SerializablePlugin...双击后就可以看见生成后的代码了 里面有方法介绍一些: /** * insert : 全字段保存 * 不论对象<em>中</em>属性是否为<em>null</em>,都会拼接SQL语句发送到数据库<em>中</em>。...<em>null</em>,都会拼接SQL语句发送到数据库<em>中</em>。...属性如果为<em>null</em>,更新数据库<em>中</em>的响应字段数据为空。...,会将数据库表<em>中</em>的字段<em>设置</em>为<em>null</em> //factoryDao.<em>updateByPrimaryKeySelective</em>(factory);//非空字段更新,对于非空属性生成更新SQL语句

    32210

    Spring Boot+Vue做微人事项目第十一天

    破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 Spring Boot+Vue做微人事项目系列目录 Spring Boot+Vue做微人事项目第十一天 前两天做了微人事登录的前端页面和后端接口...,第六天是做的服务端菜单接口的设计,第七天是Vuex的介绍、安装和配置、第八天是不写代码,第九天谈一谈前后端分离开发,权限管理的一些思路,是后端接口权限设计,第十天写业务代码,从系统管理的基础信息设置开始写...DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd...= null"> #{enabled,jdbcType=BIT}, <update id="<em>updateByPrimaryKeySelective</em>...至此: 系统管理的基础信息<em>设置</em>的后端接口已写完

    28520

    Spring Boot入门系列(十九)集成mybatis

    接下来介绍使用mybatis 常用注解以及如何传参数等数据库操作的常用操作。...注解介绍 mybatis 注解方式的最大特点就是取消了 Mapper 的 XML 配置,具体的 SQL 脚本直接写在 Mapper 类或是 SQLProvider 的方法动态生成 。...mybatis 提供的常用注解有: @Insert 、@Update 、@Select、 @Delete 等标签,这些注解其实就是 MyBatis 提供的来取代其 XML配置文件的。...以上就是项目中常用的增、删、改、查的操作, 其实这些在基本的方法不需要手动写,前面讲过的mybatis generator 自动生成即可。讲这些主要是熟悉这些常用的注解。...mybatis 除了提供了@Insert、@Delete 这些常用的注解,还提供了多个注解:@InsertProvider,@UpdateProvider,@DeleteProvider和@SelectProvider

    1.1K42

    tk.mybatis通用插件updateByPrimaryKeySelective无法自动更新ON UPDATE CURRENT_TIMESTAMP列的解决办法

    update时, 让mysql自动更新成当前时间,这样只要记录有变化,通过这一列就能知道什么时候变化的(这也是很多公司的数据库开发规范之一) 然后tk.mybatis里提供了一个很方便的方法:updateByPrimaryKeySelective...updateByPrimaryKeySelective的原理,是根据entity对象的属性值,是否为null,如果为null,则最终生成的update语句里,将忽略该列,否则会更新该列。...,以便让mybatis生成的update的语句忽略 sample.setDatachangeLasttime(null); int affectedRows = sampleEntityMapper.updateByPrimaryKeySelective...null,这有点low,讲出去要被人笑话的^_~ mybatis提供了拦截器机制,搞一个拦截器在更新前拦截一下,反射大法把这列设置null,就万事大吉了。...= null) { method.invoke(target, args); } } } 最后在mybatis-config.xml里启用该插件:

    3.3K10

    SpringBoot教程(十一) | SpringBoot集成Mybatis

    但是在mybatis,我们一般都把这一层称之为mapper, 并且一般类名也这个结尾,其实代表的都是一个意思,就是使用习惯的问题。...4、mybatis自动填充时间 上面的案例,由于我们没有对时间进行设置,导致创建时间和修改时间都是空的。...其实Mybatis为我们提供了拦截器的机制,相当于可以对每次执行的sql进行拦截,这样我们就可以对对操作进行判断,如果是插入操作,就直接设置创建时间和修改时间为当前时间。...拦截器,能与设置创建时间和更新时间 */ @Component @Intercepts({ @Signature(type = Executor.class, method = "update",...其实这类文件的内容是比较有规律的,所以如果每次没有都去自己写,是比较耗费时间的,所有mybatis为我们提供了mybatis-generator插件,通过这个插件,我们可以设置对应的数据库连接和表名,

    65631

    MyBatis学习总结(四)——MyBatis缓存与代码生成

    一、MyBatis缓存 缓存可以提高系统性能,可以加快访问速度,减轻服务器压力,带来更好的用户体验。缓存空间换时间,好的缓存是缓存命中率高的且数据量小的。缓存是一种非常重要的技术。...=null){ session.close(); } } } 1.1、MyBatis缓存概要 在一个系统查询的频次远远高于增删改,据三方统计不同系统比例在...: useCache配置 ​ 如果一条语句每次都需要最新的数据,就意味着每次都需要从数据库查询数据,可以把这个属性设置为false,: <select id="selectAll" useCache...=null){ session.close(); } } } 2、MyBatis核心配置文件 <?...三、MyBatis-GUI代码生成器mybatis-generator-gui 3.1、概要 源码地址:https://github.com/zouzg/mybatis-generator-gui mybatis-generator-gui

    1.2K30

    使用Mybatis报错:java.lang.NullPointerException排查方案

    java.lang.NullPointerException ### The error may involve com.hzgroup.switchproject.dao.inter.mysql.DistributionBookingDao.updateByPrimaryKeySelective-Inline...1 开启打印SQL语句的配置 因为是通过MyBatis 连接数据库,所以需要查看SQL的执行语句 Spring+Mybatis在控制台输出SQL的最简单方法: 在application.yml文件添加...3 检查数据库的字符编码 数据库、表、字段的字符编码都应该统一,最好设置成utf8-general_ci 4 检查Mapper是否注入成功 @Autowire报错导致的NullPointerException...5 List All elements are null导致NullPointerException 当List对象显示 All elements are null时,虽然输入为[null],但是list.size...不管是list==null,list.isEmpty(),list.size()都无法判断list是否为空。 可以在执行上面语句时,加上list.remove(null)

    12.2K20

    Spring boot Mybatis-XML方式通用Mapper插件(七)

    MYSQL style: camelhump 可配置参数介绍 UUID:设置生成UUID的方法,需要用OGNL方式配置,不限制返回值,但是必须和字段类型匹配 IDENTITY:取回主键的方式...ORDER:的order属性,可选值为BEFORE和AFTER catalog:数据库的catalog,如果设置该值,查询的时候表名会带catalog设置的前缀 schema:同...image.png 泛型实体类必须符合要求 实体类按照如下规则和数据库表进行转换,注解全部是JPA的注解: 1.表名默认使用类名,驼峰转下划线(只对大写字母进行处理),TestUser默认对应的表名为...,int作为实体类字段时会有默认值0,而且无法消除,所以实体类建议不要使用基本类型. 10....INFORMIX: select dbinfo('sqlca.sqlerrd1') from systables where tabid=1 使用GenerationType.IDENTITY需要在全局配置配置

    3.5K10

    Spring Boot入门系列(十八)mybatis 使用注解实现增删改查,无需xml文件!

    约定取代配置的规范已经深入人心。开发者还是倾向于使用注解解决一切问题,注解版最大的特点是具体的 SQL 文件需要写在 Mapper 类,取消了 Mapper 的 XML 配置 。...application.properties 需要增加 mybatis 相关的数据库配置。...############################################################ # 数据源相关配置,这里的是阿里的druid 数据源 ############...若要增加新的动态SQL,只需在UserSqlProvider增加相应的方法,然后在UserMapper增加相应的引用即可,   :@UpdateProvider(type=UserSqlProvider.class...三、实现增删改查 在项目中整合了Mybatis通过自动生成工具生成了相关的mapper和配置文件之后,下面就开始项目中的调用。这个和之前的xml 配置版也是一样的。

    2.9K51
    领券