文档章节

介绍MyBatis代码生成网站(二) --- 优点介绍

北京软件中心
 北京软件中心
发布于 2016/09/26 13:44
字数 1848
阅读 82
收藏 0

一.简介

网址: http://www.fwjava.com

操作流程: 详见“ 介绍MyBatis代码生成网站(一) --- 基本操作 ”

比较对象: 开源软件mybatis-generator , 和与其类似的衍生开源软件(如mybatis-mapper之类)

二.优点介绍 -- (对比开源软件)

特别适用于追求【 高质量代码 】 的个人开发者、项目组、互联网企业使用.

a) 代码质量方面

开源软件(如:mybatis-generator)生成的代码,总体上比较粗糙: 大多用动态sql、常用的方法少等。

而fwjava.com生成的代码,则比较专业、干净、漂亮: 使用正规的sql语句、基本涵盖所有的常用方法。

代码对比,如下:

开源软件mybatis-generator生成的代码: (如下)

  <resultMap id="BaseResultMap" type="com.model.TabDemo">
    <id column="ID" jdbcType="BIGINT" property="id" />
    <result column="USER_NAME" jdbcType="VARCHAR" property="userName" />
    <result column="ORDER_NO" jdbcType="VARCHAR" property="orderNo" />
    <result column="ORDER_COUNT" jdbcType="INTEGER" property="orderCount" />
    <result column="PRICE_DECIMAL" jdbcType="DECIMAL" property="priceDecimal" />
    <result column="PRICE_DOUBLE" jdbcType="DOUBLE" property="priceDouble" />
    <result column="PRICE_FLOAT" jdbcType="REAL" property="priceFloat" />
    <result column="CREATED" jdbcType="TIMESTAMP" property="created" />
    <result column="UPDATED" jdbcType="TIMESTAMP" property="updated" />
  </resultMap>
  <sql id="Base_Column_List">
    ID, USER_NAME, ORDER_NO, ORDER_COUNT, PRICE_DECIMAL, PRICE_DOUBLE, PRICE_FLOAT, CREATED, 
    UPDATED
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from tab_demo
    where ID = #{id,jdbcType=BIGINT}
  </select>

fwjava.com生成的代码: (如下)

   <!--
    **************************************************************************
    * 5.条件查询
    * 注: 支持多条件查询、模糊查询、日期比较查询等操作.
    **************************************************************************
    -->
    <select id="getList"
            parameterType="com.icsm.paybank.entity.TabDemo"
            resultType="com.icsm.paybank.entity.TabDemo">
    
            SELECT   /* getList+@com.icsm.paybank.sql.TabDemo.xml */ 
                     td.ID                AS "id"              /* 主键ID */ 
                    ,td.USER_NAME         AS "userName"        /* 用户名称 */ 
                    ,td.ORDER_NO          AS "orderNo"         /* 订单号 */ 
                    ,td.ORDER_COUNT       AS "orderCount"      /* 表数目 */ 
                    ,td.PRICE_DECIMAL     AS "priceDecimal"    /* 品类价格 */ 
                    ,td.PRICE_DOUBLE      AS "priceDouble"     /* 类目价格 */ 
                    ,td.PRICE_FLOAT       AS "priceFloat"      /* 商品价格 */ 
                    ,td.CREATED           AS "created"         /* 创建时间 */ 
                    ,td.UPDATED           AS "updated"         /* 变更日期 */ 
              FROM   TAB_DEMO                 td               /* 演示主表 */ 
             WHERE   1 = 1
        
             <if test='id != null'>
               AND   td.ID = #{id} /* 主键ID */ 
             </if>
        
             <if test='userName != null and userName != "" and userName != "null" and userName != "undefined"'>
               AND   td.USER_NAME = #{userName} /* 用户名称 */ 
             </if>
        
             .......

    </select>

 

b) 操作方面

开源软件(如:mybatis-generator) : 需要下载软件到本地后 , 再需要手动编辑配置文件 ,把几十张表一个个填上 , 在利用命令窗CMD输入命令 , 最终生成劣质代码.

而 fwjava.com : 则只需把想要生成的表 , 使用Navicat或PowerDesigner导出sql文件后 , 一键上传即可. 无需下载任何软件、麻烦的手动配置过程、运行命令等繁琐的操作.

c) SQL方法方面

开源软件(如:mybatis-generator) : 单表只能生成3~5小方法 , 而且还不能选择要生成的sql方法种类.

而 fwjava.com : 单表最多能生成26个sql方法 , 并且开发者还可以根据自身需要 , 通过页面选择sql方法种类. 不需要生成的sql方法 , 可以勾去 ,不生成.

d) 常用格式化方面

开源软件(如:mybatis-generator) : 基本没有任何常用字段格式化功能.

而 fwjava.com : 对日期类型格式化、日期比较、日期范围、字符串字段模糊查询、分页查询、批量处理、继承基类等 , 生成精细化的处理代码.

e) 中文注释方面

开源软件(如:mybatis-generator) :  基本没有 ! 就算有 , 也是超难看 , 摆不上台面.

而 fwjava.com : 不仅每个字段都生成中文注释 , 而且还是非常整洁干净的.

f) 常用代码拷贝方面

开源软件(如:mybatis-generator) :  基本没有 !

而 fwjava.com : 在每个整洁的Java实体最下方 , 都有常用代码的拷贝区: 如 每个字段的html标签实体赋值与取值等, 非常实用、方便.

g) 命名方面

开源软件(如:mybatis-generator) :  基本没有 !

而 fwjava.com : 支持统一给Java实体、SQL文件、Mapper接口类设置自定义的后缀.

h) 参数类型方面

开源软件(如:mybatis-generator) :  只有简单的Java实体 !

而 fwjava.com :  对14大类SQL方法 , 不仅支持Java实体类型参数 , 而且还支持HashMap类型参数.


    /**
     * 1.新增一条数据
     * 注: 根据Bean实体执行新增操作.
     * @param tabDemo     - 演示主表
     * @throws Exception  - 异常捕捉
     */
    public void getInsert(TabDemo tabDemo) throws Exception;
    public void getInsertPrmMap(Map<String ,Object> map) throws Exception;


    /**
     * 2.删除一条数据
     * 注: 根据Bean实体的主键ID执行删除操作.
     * @param id          - 主键ID
     * @return int        - 执行结果
     * @throws Exception  - 异常捕捉
     */
    public int getDelete(Long id) throws Exception;


    /**
     * 3.变更一条数据
     * 注: 根据Bean实体的主键ID执行变更操作.
     * @param tabDemo     - 演示主表
     * @return int        - 执行结果
     * @throws Exception  - 异常捕捉
     */
    public int getUpdate(TabDemo tabDemo) throws Exception;
    public int getUpdatePrmMap(Map<String ,Object> map) throws Exception;


    /**
     * 4.获取一个Bean实体
     * 注: 根据Bean实体的主键ID获取一个Bean实体.
     * @param id          - 主键ID
     * @return TabDemo    - 执行结果
     * @throws Exception  - 异常捕捉
     */
    public TabDemo getBean(Long id) throws Exception;
    public Map<String ,Object> getBeanRtnMap(Long id) throws Exception;


    /**
     * 5.条件查询
     * 注: 支持多条件查询、模糊查询、日期比较查询等操作.
     * @param tabDemo         - 演示主表
     * @return List<TabDemo>  - 执行结果
     * @throws Exception      - 异常捕捉
     */
    public List<TabDemo> getList(TabDemo tabDemo) throws Exception;
    public List<TabDemo> getListPrmMapRtnBean(Map<String ,Object> map) throws Exception;
    public List<Map<String ,Object>> getListPrmMapRtnMap(Map<String ,Object> map) throws Exception;


    /**
     * 6.分页查询
     * 注: 支持分页查询、多条件查询、模糊查询、日期比较查询等操作.
     * @param map             - 演示主表及分页信息
     * <br>[参数说明] 如下 , map中有3个固定Key , 且区分大小写.
     * <br>[键1] bean - 演示主表 (实体)
     * <br>[键2] offset - 偏移量 (分页信息)
     * <br>[键3] rows - 数目 (分页信息)
     * @return List<TabDemo>  - 执行结果
     * @throws Exception      - 异常捕捉
     */
    public List<TabDemo> getPageList(Map<String ,Object> map) throws Exception;
    public List<Map<String ,Object>> getPageListRtnMap(Map<String ,Object> map) throws Exception;


    /**
     * 7.删除数据
     * 注: 根据Bean实体的主键ID执行删除操作.
     * @param tabDemo     - 演示主表
     * @return int        - 执行结果
     * @throws Exception  - 异常捕捉
     */
    public int getDeleteBean(TabDemo tabDemo) throws Exception;
    public int getDeleteMap(Map<String ,Object> map) throws Exception;


    /**
     * 8.删除多条数据
     * 注: 根据拼接有限个主键ID执行多条数据的删除操作.
     * @param ids         - 主键ID
     * @return int        - 执行结果
     * @throws Exception  - 异常捕捉
     */
    public int getDeleteIn(Long[] ids) throws Exception;


    /**
     * 9.条件删除数据
     * 注: 根据多种条件执行批量删除操作.
     * @param tabDemo     - 演示主表
     * @return int        - 执行结果
     * @throws Exception  - 异常捕捉
     */
    public int getDeleteBy(TabDemo tabDemo) throws Exception;
    public int getDeleteByPrmMap(Map<String ,Object> map) throws Exception;


    /**
     * 10.验证一条数据是否存在
     * 注: 根据主键ID验证该数据是否存在 ,并返回数据量.
     * @param id          - 主键ID
     * @return int        - 存在数量
     * @throws Exception  - 异常捕捉
     */
    public int getCheck(Long id) throws Exception;


    /**
     * 11.验证多条件数据是否存在
     * 注: 根据多条件验证该数据是否存在 ,并返回数据量.
     * @param tabDemo     - 演示主表
     * @return int        - 存在数量
     * @throws Exception  - 异常捕捉
     */
    public int getCheckBy(TabDemo tabDemo) throws Exception;
    public int getCheckByPrmMap(Map<String ,Object> map) throws Exception;


    /**
     * 12.按条件变更一条数据
     * 注: 根据Bean实体的主键ID,只对部分字段执行变更操作.
     * @param tabDemo     - 演示主表
     * @return int        - 执行结果
     * @throws Exception  - 异常捕捉
     */
    public int getUpdateBy(TabDemo tabDemo) throws Exception;
    public int getUpdateByPrmMap(Map<String ,Object> map) throws Exception;


    /**
     * 13.InsertBatch - 批量新增数据
     * 注: 根据演示主表List对象执行批量新增操作.
     * @param list        - 演示主表List
     * @throws Exception  - 异常捕捉
     */
    public void getInsertBatch(List<TabDemo> list) throws Exception;
    public void getInsertBatchPrmMap(List<Map<String ,Object>> list) throws Exception;


    /**
     * 14.UpdateBatch - 批量更新数据
     * 注: 根据演示主表List对象执行批量更新操作.
     * @param list        - 演示主表List
     * @throws Exception  - 异常捕捉
     */
    public void getUpdateBatch(List<TabDemo> list) throws Exception;
    public void getUpdateBatchPrmMap(List<Map<String ,Object>> list) throws Exception;

 i) ...... (还有很多 , 使用便可知)

 

以上 !

© 著作权归作者所有

共有 人打赏支持
北京软件中心
粉丝 8
博文 10
码字总数 12120
作品 0
海淀
私信 提问
介绍MyBatis代码生成网站(八) --- 数据类型对照表

一.简介 网址: http://www.fwjava.com 操作流程: 详见“ 介绍MyBatis代码生成网站(一) --- 基本操作 ” 二.数据类型对照表 以下是本网站采用的,数据库数据类型所对应的Java数据类型对照表....

北京软件中心
2016/09/27
88
0
介绍MyBatis代码生成网站(六) --- SQL方法的选择

一.简介 网址: http://www.fwjava.com 操作流程: 详见“ 介绍MyBatis代码生成网站(一) --- 基本操作 ” 需求描述: 在实际的应用开发中 , 我们希望在14个大类26个SQL方法中 , 选择生成自己想要...

北京软件中心
2016/09/26
40
1
mybatis generator 的使用

介绍网址:http://generator.sturgeon.mopaas.com/ 在maven 上进行 :http://generator.sturgeon.mopaas.com/running/runningWithMaven.html 一、介绍 MyBatis Generator (MBG) 是一个Mybat......

@ccny
2016/06/23
51
0
介绍MyBatis代码生成网站(五) --- 浮点类型与BigDecimal

一.简介 网址: http://www.fwjava.com 操作流程: 详见“ 介绍MyBatis代码生成网站(一) --- 基本操作 ” 需求描述: 在实际的应用开发中 , 我们经常会遇到金额、精度等浮点类型问题. 在很多时候...

北京软件中心
2016/09/26
201
0
介绍MyBatis代码生成网站(七) --- Html标签与Copy区

一.简介 网址: http://www.fwjava.com 操作流程: 详见“ 介绍MyBatis代码生成网站(一) --- 基本操作 ” 需求描述: 在实际的应用开发中 , 经常会遇到这么2件事: 1) 页面开发时 , 经常需要手动...

北京软件中心
2016/09/26
97
1

没有更多内容

加载失败,请刷新页面

加载更多

分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
2
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
1
0
cocoapods 用法

cocoapods install pod install 更新本地已经install的仓库 更新所有的仓库 pod update --verbose --no-repo-update 更新制定的仓库 pod update ** --verbose --no-repo-update...

HOrange
今天
3
0
linux下socket编程实现一个服务器连接多个客户端

使用socekt通信一般步骤 1)服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。 2)客户端:socker()建立套接字,连接(connect)服务器,连接上后...

shzwork
昨天
3
0
android自定义viewgroup画背景

设计部要求背景实现一个背景边框带圆弧的效果: 所以想着用自定义控件画一个背景。 为了方便,继承的是LinearLayout,在onMeasure中先获取控件宽高: @Overrideprotected void onMeasure(in...

醉雨
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部