1.首先说一下原因:
因为resultMap 是在当前xml声明配置的,如下,对于每个字段的列和接收的属性都匹配过,所以可以一一对应拿到数据
<resultMap id="BaseResultMap" type="com.gdlt.cloud.entity.DtTask">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="version" jdbcType="INTEGER" property="version" />
<result column="project_id" jdbcType="INTEGER" property="projectId" />
<result column="is_delete" jdbcType="INTEGER" property="isDelete" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_id" jdbcType="INTEGER" property="createId" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_id" jdbcType="INTEGER" property="updateId" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="task_data" property="taskData" typeHandler="com.gdlt.cloud.utils.ObjectJsonHandler"/>
</resultMap>
然而 resultType 跟的是一个对象,当你没有配置驼峰属性的时候,对于数据库下划线的数据,如:project_id 往往是接不到的,大概就是这样的原因,而对于像id这样的单词是可以接收的。
所以想要可以接收驼峰,配置一下mybatis-config.xml 配置文件,
内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>
我用的是springboot框架,所以,需要在application.properties 里面引入该配置文件,如下:
mybatis.config-location=classpath:/mybatis/mybatis-config.xml
如果你用的别的框架呢,就自行百度一下引入配置文件的方法吧,配置好驼峰之后,就可以接收数据了,没问题。