Mybatis之逆向工程的文件和方法解析

一、Mybatis逆向工程生成的文件:
在这里插入图片描述
BlogMapper.xml : mapper映射文件
BlogMapper.java:mapper接口文件
Blog.java:实体类
BlogExample.java:实体类对应的example。用于添加条件,相当于where后面的部分。
BlogWithBLOBs.java:继承了实体类Blog。同时在BlogMapper.xml中继承了BaseResultMap,有自己特殊的字段,对应数据表的text、longvarchar等长类型,如果数据库没有长数据类型则不会生成该文件。

检索大字段时,则需要使用selectByExampleWithBLOBs ,一般情况则使用selectByExample 即可。

二、BlogExample.java 和 BlogWithBLOBs.java的区别:

进行逆向工程的数据表如下,可以看出该表包含了text和longtext类型。

在这里插入图片描述
逆向生成的Blog和BlogWithBLOBs 实体类,BlogWithBLOBs继承了Blog类,可以看出text和longtext这两个长类型是单独在BlogWithBLOBs类中实现的。

//Blog.java的代码
package com.online.domain;
public class Blog {
   
    private Integer id;
    private String title;
    private String summary;
    //省略get和set方法
}

//BlogWithBLOBs.java的代码
package com.online.domain;
public class BlogWithBLOBs extends Blog {
   
    private String content;
    private String htmlcontent;
    //省略get和set方法
}

在mapper.xml中可以看出ResultMapWithBLOBs继承于BaseResultMap:

<mapper namespace="com.online.dao.BlogMapper" >
  <resultMap id="BaseResultMap" type="com.online.domain.Blog" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="title" property="title" jdbcType="VARCHAR" />
    <result column="summary" property="summary" jdbcType="VARCHAR" />
  </resultMap>
  <resultMap id="ResultMapWithBLOBs" type="com.online.domain.BlogWithBLOBs" extends="BaseResultMap" >
    <result column="content" property="content" jdbcType="LONGVARCHAR" />
    <result column="htmlContent" property="htmlcontent" jdbcType="LONGVARCHAR" />
  </resultMap>

当然也可以去除BlogWithBLOBs.java类,解决方法是在generatorConfig.xml中对text等类型的字段进行类型转换,然后删除之前生成的文件,重新逆向生成,BlogWithBLOBs类就消失了:

<!-- 指定数据库表     数据库表名:tableName   对应的实体类名:domainObjectName -->
<table tableName="blog" domainObjectName="Blog">
   <columnOverride column=
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值