MyBatis Generator對於mysql text類型數據的處理||MyBatis生成的selectByExample方法獲取text類型數據獲得空值

Mybatis自動生成的Xml文件,text數據類型會默認產生XXWithBlobs的方法,用以獲取含有該類型的數據

  • 因此,讀取含有text類型的數據的時候,應該使用XXWithBlobs的方法,不然會獲取到空值
  • 其次,只能修改數據類型了,改用varchar了

如下是MyBatis對於數據類型映射的操做解析

  • 以下,能夠看到MyBatis對於類型的處理:

表數據,其中introductiontext類型數據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

相關文章
相關標籤/搜索