springboot下配置mybatis的call-setters-on-nulls属性(sqlSessionFactory解决方法)

使用Mybatis时,如果查询语句中某些字段值是null的,则这个字段就无法返回。对于后台数据处理来说,这是一个致命的问题,于是通过修改Mybatis的配置来解决这个问题。

在springmvc下,在mybatis的配置文件里面增加以下配置即可:

mybatis.configuration.call-setters-on-nulls=true

但在springboot中,则有时不起作用。经过研究,其实在SqlSessionFactory增加callSettersOnNulls的配置就可以了,这里记录一下:

主要代码:

final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        // 数据库为空是保留字段
org.apache.ibatis.session.Configuration configuration =new org.apache.ibatis.session.Configuration(
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Spring Boot 中配置 MyBatis-Plus 的全局日期返回格式,可以通过配置 MyBatis-Plus 的全局配置类 GlobalConfig 来实现。具体步骤如下: 1. 创建 MyBatis-Plus 的全局配置类 GlobalConfig,通过 setMetaObjectHandler 方法指定自定义的元对象处理器和 setGlobalConfig 方法配置全局日期返回格式,如下所示: ``` import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.extension.handlers.MybatisPlusDefaultMetaObjectHandler; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyBatisPlusConfig { @Bean public GlobalConfig globalConfig() { GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setMetaObjectHandler(new MybatisPlusDefaultMetaObjectHandler()); globalConfig.setSqlInjector(new LogicSqlInjector()); globalConfig.setDbConfig(new GlobalConfig.DbConfig().setLogicDeleteValue("1").setLogicNotDeleteValue("0")); globalConfig.getDbConfig().setDateFormat("yyyy-MM-dd HH:mm:ss"); return globalConfig; } } ``` 其中,MybatisPlusDefaultMetaObjectHandler 是 MyBatis-Plus 提供的默认元对象处理器,可以自动填充创建时间和更新时间;LogicSqlInjector 是 MyBatis-Plus 提供的逻辑删除插件,用于在进行删除操作时,将数据标记为已删除而不是直接删除;DbConfig 用于配置数据库相关设置,如逻辑删除的值等;setDateFormat 方法用于配置全局日期返回格式。 2. 在 application.properties 或 application.yml 中配置 MyBatis-Plus 的 mapper 接口扫描路径,如下所示: ``` mybatis-plus.mapper-locations=classpath*:mapper/**/*.xml ``` 3. 在实体类中使用 @TableField 注解指定日期类型的格式,如下所示: ``` import com.baomidou.mybatisplus.annotation.TableField; import java.time.LocalDateTime; public class User { @TableField(value = "create_time", el = "createTime") private LocalDateTime createTime; // 省略其他字段和方法 } ``` 这样,在使用 MyBatis-Plus 进行查询操作时,会自动将日期格式化成指定的格式返回。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值