mybatis註解Select查詢List,返回有物件個數,但是為null

莊偉堅發表於2018-03-27

用mybatis註解Select查詢List,返回有物件個數,但是為null,

程式碼如下

public interface SysRoleMapper {
	
    @Select("select * from sys_role ")
    List<SysRole> selectAll();

}

具體出現原因,查詢出來的資料,與實體bean的欄位不相匹配,導致null

實體bean的欄位為駝峰形式,如,roleId, 而資料庫為role_id,因此,匹配不上,導致對映失敗

解決方式:

方式1、修改查詢sql,修改程式碼為:

public interface SysRoleMapper {
	
    @Select("select role_id as roleId from sys_role ")
    List<SysRole> selectAll();

}

方式2、新增mybatis自動駝峰註解,配置如下:

spring配置如下:

     <!-- spring和MyBatis整合 -->
    <bean id="sqlSessionFactoryBeanNew" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--列印sql-->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <!-- <property name="dataSource" ref="dynamicDataSource" /> -->
        <property name="dataSource" ref="dataSource" />
        <!-- 自動掃描mapping.xml檔案 -->
        <property name="mapperLocations" value="classpath:dcc/mapper/*.xml"></property>
    </bean>

mybatis-config.xml配置如下

<configuration>
    <settings>
        <!-- 列印查詢語句 -->
        <setting name="logImpl" value="STDOUT_LOGGING" />
        <!-- 自動駝峰 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>


相關文章