属于图像编码的编码方式 编码方式( 二 )


2.主要优缺点
主要优点:
生成代码速度较快 。主要缺点:
必须编写样例代码;只适用于文本替换的情景 。*** 4:用Excel公式生成代码Excel 的公式非常强悍,可以用于编写一些公式化的代码 。
1.利用 Excel 公式生成模型类
从 WIKI 上拷贝接口模型定义到 Excel 里,样例数据内容如下:

属于图像编码的编码方式  编码方式

文章插图
编写 Excel 公式如下:
= "/** "&D6&IF(ISBLANK(F6), "", "("&F6&")")&" */ "&IF(E6 = "否", IF(C6 = "String", "@NotBlank", "@NotNull"), "")&" private "&C6&" "&B6&";"利用公式生成代码如下:
/** 用户标识 */ @NotNull private Long id;/** 用户名称 */ @NotBlank private String name;/** 用户性别(0:未知;1:男;2:女) */ @NotNull private Integer sex;/** 用户描述 */ private String description;创建模型类,整理代码如下:
/** 用户DO类 */public class UserDO { /** 用户标识 */ @NotNull private Long id; /** 用户名称 */ @NotBlank private String name; /** 用户性别(0:未知;1:男;2:女) */ @NotNull private Integer sex; /** 用户描述 */ private String description; ......}【属于图像编码的编码方式编码方式】2.利用 Excel 公式生成枚举类
从 WIKI 上拷贝枚举定义到 Excel 里,样例数据内容如下:
属于图像编码的编码方式  编码方式

文章插图
编写 Excel 公式如下:
="/** "&D2&"("&B2&") */"&C2&"("&B2&", """&D2&"""),"利用公式生成代码如下:
/** 空(0) */NONE(0, "空"),/** 男(1) */MAN(1, "男"),/** 女(2) */WOMAN(2, "女"),创建枚举类,整理代码如下:
/** 用户性别枚举 */public enum UserSex { /** 枚举定义 */ /** 空(0) */ NONE(0, "空"), /** 男(1) */ MAN(1, "男"), /** 女(2) */ WOMAN(2, "女"); ......}3.利用 Excel 公式生成数据库语句
用 Excel 整理的公司列表如下,需要整理成 SQL 语句直接插入数据库:
属于图像编码的编码方式  编码方式

文章插图
编写 Excel 公式如下:
= "('"&B2&"', '"&C2&"', '"&D2&"', '"&E2&"'),"利用公式生成 SQL 如下:
('高德', '首开大厦', '(010)11111111', 'gaode@xxx.com'),('阿里云', '绿地中心', '(010)22222222', 'aliyun@xxx.com'),('菜鸟', '阿里中心', '(010)33333333', 'cainiao@xxx.com'),添加 into 语句头,整理 SQL 如下:
insert into t_company(name, address, phone, email) values('高德', '首开大厦', '(010)11111111', 'gaode@xxx.com'),('阿里云', '绿地中心', '(010)22222222', 'aliyun@xxx.com'),('菜鸟', '阿里中心', '(010)33333333', 'cainiao@xxx.com');4.主要优缺点
主要优点:
适用于表格化数据的代码生成;写好公式后,拖拽生成代码,生成速度较快 。主要缺点:
不适用于复杂功能的代码生成 。*** 5:用工具生成代码用工具生成代码,顾名思义就是借用已有的工具生成代码 。很多开发工具都提供一些工具生成代码,比如:生成构造函数,重载基类/接口函数,生成 Getter/Setter 函数,生成 toString 函数……能够避免很多手敲代码 。还有一些生成代码插件,也可以生成满足某些应用场景的代码 。
这里以 mybatis-generator 插件生成代码为例,介绍如何利用工具生成代码 。
1.安装运行插件
具体 *** 这里不再累述,自行上网搜索文档了解 。
2.生成代码样例
| 2.1.生成模型类代码
文件 User.java 内容:
......public class User { private Long id; private String user; private String password; private Integer age; ......}| 2.2.生成映射接口代码
文件 UserMapper.java 内容:
......public interface UserMapper { User selectByPrimaryKey(Long id); ......}| 2.3.生成映射XML代码
文件 UserMapper.xml 内容:
......<mapper namespace="com.test.dao.UserMapper" > <resultMap id="BaseResultMap" type="com.test.pojo.User" > <id column="id" property="id" jdbcType="BIGINT" /> <result column="user" property="user" jdbcType="VARCHAR" /> <result column="password" property="password" jdbcType="VARCHAR" /> <result column="age" property="age" jdbcType="INTEGER" /> </resultMap> <sql id="Base_Column_List" > id, user, password, age </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > select <include refid="Base_Column_List" /> from test_user where id = #{id,jdbcType=BIGINT} </select> ......</mapper>3.主要优缺点
主要优点:
利用生成代码插件,生成代码速度较快;利用插件配置文件,控制生成想要的功能代码 。主要缺点:
需要时间研究和熟悉生成代码插件的使用;生成的代码不一定满足代码规范,每次生成后需进行代码合规;重新生成代码后,容易覆盖自定义代码(建议维护单独的生成代码库,通过DIFF 工具比较代码差异,然后再赋值粘贴差异代码) 。*** 6:用代码生成代码用代码生成代码,就是自己编写代码,按照自己的格式生成代码 。下面,以生成基于 MyBatis 的数据库访问代码为例说明 。

推荐阅读