最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決mybatis plus字段為null或空字符串無法保存到數(shù)據(jù)庫的問題

 更新時間:2021年02月20日 08:50:14   作者:toalaska  
這篇文章主要介紹了解決mybatis plus字段為null或空字符串無法保存到數(shù)據(jù)庫的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

背景

項目中集成了mybatis plus, 今天在做后臺的一個常規(guī)的增刪改查時,發(fā)現(xiàn)字段值為null時,這個字段不會被保存到數(shù)據(jù)庫

解決辦法

在字段上加上

@TableField(strategy = FieldStrategy.IGNORED)

strategy字段更新插入策略屬性說明:

IGNORED(0): “忽略判斷”, 所有字段都更新和插入

NOT_NULL(1): “非 NULL 判斷”, 只更新和插入非NULL值

NOT_EMPTY(2): “非空判斷”, 只更新和插入非NULL值且非空字符串

另外一種方式可全局配置,未親手實踐。

補充:Mybatis查詢數(shù)據(jù)部分字段顯示為null,怎么轉成空串("")

1、先定義一個handler,來把字段為null的轉成空串("")

2、在Mapper.xml中,把可能為空的字段,加上typeHandler屬性,指定處理的handler類的全路徑。

CustomStringTypeHandler.java

package com.wang.common.mybatis.handler;
import org.apache.ibatis.executor.result.ResultMapException;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * @Name: CustomStringTypeHandler
 * @Desc: 自定義mybatis處理類,將null返回為空串(‘')
 * @Author: Administrator
 * @Date: 2019-09-03 18:20
 */
@MappedTypes({String.class})
@MappedJdbcTypes(JdbcType.VARCHAR)
public class CustomStringTypeHandler extends BaseTypeHandler<String> {
  @Override
  public String getResult(ResultSet rs, String columnName) {
    String result;
    try {
      result = getNullableResult(rs, columnName);
    } catch (Exception e) {
      throw new ResultMapException("Error attempting to get column '" + columnName + "' from result set. Cause: " + e, e);
    }
    return result;
  }
  @Override
  public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType)
      throws SQLException {
    ps.setString(i, parameter);
  }
  @Override
  public String getNullableResult(ResultSet rs, String columnName)
      throws SQLException {
    return rs.getString(columnName) == null? "" : rs.getString(columnName);
  }
  @Override
  public String getNullableResult(ResultSet rs, int columnIndex)
      throws SQLException {
    return rs.getString(columnIndex) == null? "" : rs.getString(columnIndex);
  }
  @Override
  public String getNullableResult(CallableStatement cs, int columnIndex)
      throws SQLException {
    return cs.getString(columnIndex) == null? "" : cs.getString(columnIndex);
  }
}

Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wang.sss.fw.mapper.BusinessTripMapper">
 <resultMap id="BaseResultMap" type="com.wang.sss.fw.pojo.BusinessTrip">
  <result column="REQUEST_ID" jdbcType="VARCHAR" property="requestId" />
  <result column="JOB_NUMBER" jdbcType="VARCHAR" property="jobNumber" />
  <result column="REQUEST_DATE" jdbcType="VARCHAR" property="requestDate" />
  <result column="DEPARTMENT" jdbcType="VARCHAR" property="department" />
  <result column="BUSINESS_DAYS" jdbcType="VARCHAR" property="businessDays"/>
  <result column="CFD" jdbcType="VARCHAR" property="cfd" />
  <result column="MDD" jdbcType="VARCHAR" property="mdd" />
  <result column="START_TIME" jdbcType="VARCHAR" property="startTime" />
  <result column="END_TIME" jdbcType="VARCHAR" property="endTime" />
  <result column="REASON" jdbcType="VARCHAR" property="reason" typeHandler="com.wang.common.mybatis.handler.CustomStringTypeHandler"/>
  <result column="REMARK" jdbcType="VARCHAR" property="remark" typeHandler="com.wang.common.mybatis.handler.CustomStringTypeHandler"/>
 </resultMap>
</mapper> 

沒有加typeHandler屬性,處理之前的查詢結果:

BusinessTrip(requestId=11925, jobNumber=5721, requestDate=2019-05-06, department=57, businessDays=21, cfd=上海, mdd=南京, startTime=2019-05-06 13:36, endTime=2019-05-07 13:36, reason=null, remark=null)

增加typeHandler屬性,處理后的結果:(reason和remark字段都變成了空串)

BusinessTrip(requestId=11925, jobNumber=5721, requestDate=2019-05-06, department=57, businessDays=21, cfd=上海, mdd=南京, startTime=2019-05-06 13:36, endTime=2019-05-07 13:36, reason=, remark=)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • Spring mvc文件上傳下載代碼實例

    Spring mvc文件上傳下載代碼實例

    這篇文章主要介紹了Spring mvc文件上傳下載代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Java8 Comparator排序方法實例詳解

    Java8 Comparator排序方法實例詳解

    這篇文章主要介紹了Java8 Comparator排序方法實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 集成apollo動態(tài)日志取締logback-spring.xml配置

    集成apollo動態(tài)日志取締logback-spring.xml配置

    這篇文章主要為大家介紹了集成apollo動態(tài)日志取締logback-spring.xml配置的過程內容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • Java日常練習題,每天進步一點點(43)

    Java日常練習題,每天進步一點點(43)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • 解決mybatis resultMap根據(jù)type找不到對應的包問題

    解決mybatis resultMap根據(jù)type找不到對應的包問題

    這篇文章主要介紹了解決mybatis resultMap根據(jù)type找不到對應的包問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • C語言指針數(shù)組案例詳解

    C語言指針數(shù)組案例詳解

    這篇文章主要介紹了C語言指針數(shù)組案例詳解,本文通過案例詳細的解釋了指針與數(shù)組的初始化還有關系與應用,需要的朋友可以參考下這篇文章
    2021-07-07
  • SpringBoot中使用MongoDB的連接池配置

    SpringBoot中使用MongoDB的連接池配置

    由于MongoDB的客戶端本身就是一個連接池,因此,我們只需要配置客戶端即可,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 一文詳解Mybatis-plus的介紹與使用

    一文詳解Mybatis-plus的介紹與使用

    Mybatis-Plus?是?MyBatis?的一個增強工具,專門針對于傳統(tǒng)MyBatis開發(fā)中sql需要手動進行映射配置繁瑣缺點的一款框架技術。本文將為大家詳細講講Mybatis-plus的介紹與使用,感興趣的可以了解一下
    2022-07-07
  • Springboot整合Shiro的代碼實例

    Springboot整合Shiro的代碼實例

    這篇文章主要介紹了Springboot整合Shiro的代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Java并發(fā)編程之ReentrantLock可重入鎖的實例代碼

    Java并發(fā)編程之ReentrantLock可重入鎖的實例代碼

    這篇文章主要介紹了Java并發(fā)編程之ReentrantLock可重入鎖的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論

洪雅县| 芦溪县| 阿坝| 肥城市| 阜南县| 潼南县| 景洪市| 岢岚县| 墨竹工卡县| 吐鲁番市| 苏尼特左旗| 罗平县| 宣汉县| 陈巴尔虎旗| 分宜县| 贵州省| 焦作市| 黔南| 老河口市| 偃师市| 禹城市| 唐河县| 光山县| 北海市| 楚雄市| 普陀区| 青州市| 榕江县| 漠河县| 凌云县| 司法| 航空| 乌拉特前旗| 伊宁县| 新疆| 新津县| 乃东县| 桑日县| 连州市| 潞城市| 黎城县|