這篇文章主要介紹“怎么使用HouTu根據MySQL生成Java類的開源庫”,在日常操作中,相信很多人在怎么使用HouTu根據MySQL生成Java類的開源庫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用HouTu根據MySQL生成Java類的開源庫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
目前創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網站建設、域名、虛擬主機、網站托管、服務器托管、企業(yè)網站設計、棗陽網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
HouTu
HouTu,一款基于MySQL的簡單易用又功能強大的代碼生成工具。取名后土,后土又名後土,源于母系社會自然崇拜中的土地與女性崇拜。其掌陰陽,育萬物,因此被稱為大地之母。本項目取名HouTu,取義“育萬物”之意,通過定制Freemarker模板,可以生成任意結構化的代碼,如 DO、Mapper、XML、Service、Controller、SQL、Html等等,只要你能寫出模板,HouTu就能交付給你成品代碼。
特點
原理簡單:HouTu以原生MySQL語句為基礎,獲取如數(shù)據庫列表、表詳情和列詳情等信息,結合Freemarker模板生成Java代碼。
可定制模板:HouTu集成Freemarker模板,只要是遵循Freemarker開發(fā)的模板都可以自動生成對應的Java代碼。
功能強大:支持單表生成、多表生成,理論上支持生成任意結構化的代碼。
快速開始
聲明入口類
Generator g = new Generator(Config.getInstance()
.setDriver("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://127.0.0.1:3306/houtu?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false")
.setUsername("root")
.setPassword("root")
.setPrimaryKeyType("Integer")
.setClassPrefix("HouTu")
.setClearClassPrefix("HouTu")
.setOutRootDir(System.getProperty("user.dir") + File.separator + "generator-output"));
Generator.java只提供了一個構造函數(shù),傳入系統(tǒng)配置類Config.java
使用API
Generator.java對外提供了四個接口:
Generator#deleteOutRootDir(): 刪除輸出目錄的文件,一般在generate之前調用,清空舊的輸出文件
Generator#printAllTableInfo(): 打印所有表信息
Generator#generateAll(): 將所有表生成java文件
Generator#generate(String[]): 指定表名生成java文件,入參為可變參數(shù),如果為空則調用Generator#generateAll()方法
具體使用
//刪除生成器的輸出目錄
g.deleteOutRootDir();
// 打印所有表
g.printAllTableInfo();
// 生成單個表的Java文件
g.generate("sys_user");
輸出內容
00:53:57.945 [main] INFO me.zhyd.houtu.Generator - [delete dir] D:\project\java\HouTu\generator-output
00:53:57.955 [main] INFO me.zhyd.houtu.Generator - ----All Table Names Begin----
00:53:57.990 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_resources" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_role" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_role_resources" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_user" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_user_role" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - ----All Table Names END----
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - - BEGIN generate by sys_user
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:58.077 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:58.078 [main] INFO me.zhyd.houtu.Generator - - BEGIN generate by sys_user
00:53:58.078 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:58.471 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\dto\HouTuSysUserDto.java
00:53:58.476 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\form\HouTuSysUserForm.java
00:53:58.478 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\service\HouTuSysUserService.java
00:53:58.479 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\service\impl\HouTuSysUserServiceImpl.java
00:53:58.481 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\vo\HouTuSysUserVO.java
00:53:58.482 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\controller\render\RenderHouTuSysUserController.java
00:53:58.485 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\controller\RestHouTuSysUserController.java
00:53:58.487 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\persistence\beans\HouTuSysUser.java
00:53:58.490 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\persistence\mapper\HouTuSysUserMapper.java
00:53:58.491 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\persistence\\xml\HouTuSysUserMapper.xml
00:53:58.493 [main] INFO me.zhyd.houtu.core.GeneratorHelper - 程序執(zhí)行完畢,釋放資源...
內置模板
輕量級的代碼生成工具。根據模板進行生成,理論上支持任意模板代碼的生成。
|-- biz
| |-- dto
| | `-- ${table.className}Dto.java
| |-- service
| | |-- ${table.className}Service.java
| | `-- impl
| | `-- ${table.className}ServiceImpl.java
| `-- vo
| `-- ${table.className}ConditionVO.java
|-- controller
| |-- Rest${table.className}Controller.java
| `-- render
| `-- Render${table.className}Controller.java
|-- persistence
| |-- beans
| | `-- ${table.className}.java
| |-- mapper
| | `-- ${table.className}Mapper.java
| `-- xml
| `-- ${table.className}Mapper.xml
|-- sql
|-- view
| `-- ${table.className}
|-- annotation.include
|-- java_copyright.include
`-- macro.include
定制模板
模板配置項
| 配置項 | 類型 | 示例 | 解釋 | 備注 ||:---------------------------|:---------|:---------|:---------||:---------|| classPrefix | String | Light | 生成的類前綴,先去除 clearClassPrefix 再添加 classPrefix | || clearClassPrefix | String | Light | 需要去除的類前綴,先去除 clearClassPrefix 再添加 classPrefix | || driver | String | com.mysql.cj.jdbc.Driver | | || url | String | jdbc:mysql://127.0.0.1:3306/light | | || db | String | light | 選擇的數(shù)據庫,非必填,如果為空會從url中解析 | || username | String | root | 數(shù)據庫用戶名 | || password | String | root | 數(shù)據庫密碼 | || basePackage | String | me.zhyd.xx.core | 根包名 | || beansPackage | String | me.zhyd.light.core.db.persistence.beans | beans包名 | || mapperPackage | String | me.zhyd.xx.core.db.persistence.mapper | mapper接口包名 | || outRootDir | String | D:\project\generator\generator-output | 文件輸出路徑 | || templatePath | String | template/ | 模板路徑,基于當前項目路徑 | || table | JSONObject | object | 表信息 | |
table 配置項
| 配置項 | 類型 | 示例 | 解釋 | 備注 ||:---------------------------|:---------|:---------|:---------||:---------|| type | String | BASE TABLE | 數(shù)據表類型 | || db | String | light | 數(shù)據庫名 | || tableName | String | links | 數(shù)據表名 | || coding | String | utf8mb4_general_ci | 數(shù)據表編碼 | || createTime | String | 2020-04-26 13:25:37 | 數(shù)據表創(chuàng)建時間 | || engine | String | InnoDB | 數(shù)據表引擎 | || remark | String | | 數(shù)據表注釋 | || className | String | LightLinks | 待生成的類名 | || classNameFirstLower | String | lightLinks | 首字母小寫的類名 | || classNameFirstUpper | String | LightLinks | 首字母大寫的類名 | || columns | JSONArray | array | 列信息 | |
table.columns 配置項
| 配置項 | 類型 | 示例 | 解釋 | 備注 ||:---------------------------|:---------|:---------|:---------||:---------|| tableName | String | links | 表名 | || keyType | String | PRI | 鍵類型(PRI 主鍵) | || columnName | String | id | 列名 | || columnNameFirstLower | String | id | 列名首字母小寫 | || columnNameFirstUpper | String | Id | 列名首字母大寫 | || notNull | Boolean | true | 是否允許為空 | || length | Integer | 0 | 長度 | || scale | Integer | 0 | 精度,當為浮點數(shù)字類型時可用 | || remark | String | | 列注釋 | || columnType | String | bigint | 列對應的數(shù)據庫數(shù)據類型 | || jdbcType | String | BIGINT | 列對應的JDBC數(shù)據類型 | || javaType | String | java.lang.String | 列對應的Java數(shù)據類型 | || possibleShortJavaType | String | String | | || extra | String | auto_increment | 額外參數(shù),auto_increment表自增 | |
待完成的功能
支持引用環(huán)境變量: ${env.JAVA_HOME} or System.properties: ${user.home}
自定義模板配置路徑(當前是基于項目根目錄的)
到此,關于“怎么使用HouTu根據MySQL生成Java類的開源庫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
名稱欄目:怎么使用HouTu根據MySQL生成Java類的開源庫
分享路徑:http://www.rwnh.cn/article26/jiphcg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制網站、響應式網站、網站內鏈、搜索引擎優(yōu)化、軟件開發(fā)、網站收錄
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)