屬于圖像編碼的編碼方式 編碼方式( 二 )


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 的數據庫訪問代碼為例說明 。

推薦閱讀