Mybatis自動生成的Xml文件,text數據類型會默認產生XXWithBlobs的方法,用以獲取含有該類型的數據
- 因此,讀取含有text類型的數據的時候,應該使用XXWithBlobs的方法,不然會獲取到空值
- 其次,只能修改數據類型了,改用varchar了
如下是MyBatis對於數據類型映射的操做解析
- 以下,能夠看到
MyBatis
對於類型的處理:
表數據,其中introduction
爲text
類型數據java
MyBatis Generator生成的mapper.xml片斷:數據庫
<resultMap id="BaseResultMap" type="com.liantao.bookMS.entity.Book"> <id column="book_id" jdbcType="BIGINT" property="bookId" /> <result column="name" jdbcType="VARCHAR" property="name" /> <result column="author" jdbcType="VARCHAR" property="author" /> <result column="publish" jdbcType="VARCHAR" property="publish" /> <result column="ISBN" jdbcType="VARCHAR" property="isbn" /> <result column="language" jdbcType="VARCHAR" property="language" /> <result column="price" jdbcType="DECIMAL" property="price" /> <result column="pubdate" jdbcType="DATE" property="pubdate" /> <result column="class_id" jdbcType="INTEGER" property="classId" /> <result column="pressmark" jdbcType="INTEGER" property="pressmark" /> <result column="state" jdbcType="SMALLINT" property="state" /> </resultMap> <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.liantao.bookMS.entity.Book"> <result column="introduction" jdbcType="LONGVARCHAR" property="introduction" /> </resultMap>
對於text
類型的映射是 jdbcType="LONGVARCHAR",普通類型處理則爲VARCHAR,DATE,BIGINT之類的。app
修改數據類型爲varchar後的maper.xml應該爲:
<resultMap id="BaseResultMap" type="com.liantao.bookMS.entity.Book"> <id column="book_id" jdbcType="BIGINT" property="bookId" /> <result column="name" jdbcType="VARCHAR" property="name" /> <result column="author" jdbcType="VARCHAR" property="author" /> <result column="publish" jdbcType="VARCHAR" property="publish" /> <result column="ISBN" jdbcType="VARCHAR" property="isbn" /> <result column="language" jdbcType="VARCHAR" property="language" /> <result column="price" jdbcType="DECIMAL" property="price" /> <result column="pubdate" jdbcType="DATE" property="pubdate" /> <result column="class_id" jdbcType="INTEGER" property="classId" /> <result column="pressmark" jdbcType="INTEGER" property="pressmark" /> <result column="state" jdbcType="SMALLINT" property="state" /> <result column="introduction" jdbcType="VARCHAR" property="introduction" /> </resultMap>
PS:我不知道爲何直接改不能生效,要改了數據庫在用mbg.java在生成一次才行,若有知曉請告知 3qspa
END3d