91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis返回map類型數據空值字段不顯示怎么辦

發布時間:2022-03-10 12:41:51 來源:億速云 閱讀:537 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“mybatis返回map類型數據空值字段不顯示怎么辦”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“mybatis返回map類型數據空值字段不顯示怎么辦”這篇文章吧。

mybatis返回map數據空值字段不顯示

查詢sql添加每個字段的判斷空

IFNULL(rate,'') as rate

ResultType利用實體返回

不用map

springMVC+mybatis查詢數據

返回resultType=”map”時,如果數據為空的字段,則該字段省略不顯示,可以通過添加配置文件,規定查詢數據為空是則返回null。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <settings>
    <setting name="callSettersOnNulls" value="true"/>
  </settings>
</configuration>

spring-mybatis.xml

<!-- spring和MyBatis完美整合,添加mybatis的配置映射文件 -->
  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="configLocation" value="classpath:mybatis-configuration.xml"/>
    <!-- 自動掃描mapping.xml文件 -->
    <property name="mapperLocations" value="classpath:mapping/*.xml"></property>
  </bean>

如果想要配置rate的默認值,例如“”字符串,則可以建立一個類,實現Mybatis的TypeHandler接口

public class EmptyStringIfNull implements TypeHandler<String> {
    @Override
    public String getResult(ResultSet rs, String columnName) throws SQLException {
     return (rs.getString(columnName) == null) ? "" : rs.getString(columnName); 
    }
    @Override
    public String getResult(ResultSet rs, int columnIndex) throws SQLException {
     return (rs.getString(columnIndex) == null) ? "" : rs.getString(columnIndex);
    }
    @Override
    public String getResult(CallableStatement cs, int columnIndex)   throws SQLException {
     return (cs.getString(columnIndex) == null) ? "" : cs.getString(columnIndex);
    }
    @Override
    public void setParameter(PreparedStatement ps, int arg1, String str, JdbcType jdbcType) throws SQLException { }}

在sql.xml文件定義與使用如下如下

<resultMap id="find" type="java.util.LinkedHashMap">
    <result property="name" column="name" />
    <result property="phone" column="phone" />
    <result property="rate" column="rate" typeHandler="com.mybatis.EmptyStringIfNull"/>
</resultMap>

mybatis返回map空值未返回字段

mybatis 開啟CallSettersOnNulls

@Bean
public SqlSessionFactory sqlSessionFactoryBean() throws Exception
{
    SqlSessionFactoryBean sqlSessionFactoryBean = new      SqlSessionFactoryBean();
    sqlSessionFactoryBean.setDataSource(dataSource());
    Configuration configuration = new .Configuration();
    configuration.setCallSettersOnNulls(true);//map返回空字段消失問題
    PageInterceptor pagePlugin = new PageInterceptor();
    JalorResultSetInterceptor jalorResultSetPlugin = new JalorResultSetInterceptor();
    ProgramInterceptor programPlugin = new ProgramInterceptor();
    //添加插件
    sqlSessionFactoryBean.setPlugins(new Interceptor[] {pagePlugin, jalorResultSetPlugin, programPlugin});
    sqlSessionFactoryBean.setConfiguration(configuration);
    return sqlSessionFactoryBean.getObject();
}

以上是“mybatis返回map類型數據空值字段不顯示怎么辦”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

澳门| 山西省| 元朗区| 永善县| 二连浩特市| 从化市| 呼和浩特市| 贵阳市| 弋阳县| 馆陶县| 牙克石市| 土默特左旗| 当阳市| 宜兴市| 珲春市| 山阴县| 朝阳区| 博湖县| 保德县| 庆元县| 清镇市| 合作市| 沭阳县| 平度市| 阿克陶县| 古交市| 赣州市| 谢通门县| 南京市| 临颍县| 简阳市| 灵台县| 柞水县| 华宁县| 祁阳县| 神农架林区| 汉沽区| 无为县| 中西区| 云安县| 泰来县|