利用freemark生成實體類
1.需求場景
資料報表大量實體類生成,模板化,降低維護難度。
2.專案環境
普通java專案 freemark
3.實現步驟
(1)匯入freemark jar包(使用版本FreeMarker_2.3.23)
(2)構建模板檔案,比如 entity層
entity.ftl
package ${entity.javaPackage}; /** * * TODO ${entity.javaDoc} * @author admin * */ public class ${entity.className} { /********** 屬性 ***********/ <#list entity.properties as property> private ${property.javaType} ${property.propertyName};//${property.propertyComment} </#list> /********** get/set ***********/ <#list entity.properties as property> public ${property.javaType} get${property.propertyName?cap_first}() { return ${property.propertyName}; } public void set${property.propertyName?cap_first}(${property.javaType} ${property.propertyName}) { this.${property.propertyName} = ${property.propertyName}; } </#list> }
(3)生成java檔案幫助類
public class AutoUtil { /*** * * @Title: createEntity * @Description: TODO 建立實體類 * @param propertyList 欄位集合 * @param packageName 包全路徑名稱 * @param className 類名 * @param javaDoc 類註釋 * @param path 檔案生成路徑 */ public static void createEntity(Configuration cfg, List<Property> propertyList,String packageName, String className,String javaDoc,String path){ Map<String, Object> root = new HashMap<String, Object>(); try{ Template template = cfg.getTemplate("entity.ftl"); Entity user = new Entity(); user.setJavaPackage(packageName); // 建立包名 user.setClassName(className); // 建立類名 user.setJavaDoc(javaDoc); // 類註釋 // 將屬性集合新增到實體物件中 user.setProperties(propertyList); // 建立.java類檔案 File outDirFile = new File(path); if(!outDirFile.exists()){ outDirFile.mkdir(); } File javaFile = toJavaFilename(outDirFile, user.getJavaPackage(), user.getClassName()); //資料 root.put("entity", user); //寫檔案 write2File(javaFile, template, root); }catch(Exception e){ e.printStackTrace(); } } /*** * * @Title: write2File * @Description: TODO 將資料寫入檔案 * @param javaFile 檔案物件 * @param template 模板物件 * @param root 資料 */ public static void write2File(File javaFile, Template template,Map<String,Object> root){ try{ Writer javaWriter = new FileWriter(javaFile); template.process(root, javaWriter); javaWriter.flush(); System.out.println("檔案生成路徑:" + javaFile.getCanonicalPath()); javaWriter.close(); // 輸出到Console控制檯 //Writer out = new OutputStreamWriter(System.out); // template.process(root, out); // out.flush(); // out.close(); }catch(Exception e){ e.printStackTrace(); } } /** * 建立.java檔案所在路徑 和 返回.java檔案File物件 * @param outDirFile 生成檔案路徑 * @param javaPackage java包名 * @param javaClassName java類名 * @return */ public static File toJavaFilename(File outDirFile, String javaPackage, String javaClassName) { String packageSubPath = javaPackage.replace('.', '/'); File packagePath = new File(outDirFile, packageSubPath); File file = new File(packagePath, javaClassName + ".java"); if(!packagePath.exists()){ packagePath.mkdirs(); } return file; } /** * * @Title: getTableProperty2Bean * @Description: TODO 生成 Bean * @param field 欄位 * @param column 列名 * @return */ public static List<Property> getTableProperty2Bean(List<String> field,List<String> column){ List<Property> propertyList = new ArrayList<Property>(); for (int i = 0; i < field.size(); i++) { Property p = new Property("String",field.get(i),column.get(i)); propertyList.add(p); } return propertyList; } /** * * @Title: array2List * @Description: TODO 陣列轉list * @param array */ public static List<String> array2List(String array[]){ List<String> list = new ArrayList<String>(); for (int i = 0; i < array.length; i++) { list.add(array[i]); } return list; } }
(4)測試類
package com.dx.main; public class Test { public static void main(String[] args) { Configuration cfg = new Configuration(); try { // 載入模板路徑 cfg.setDirectoryForTemplateLoading(new File("./template")); cfg.setObjectWrapper(new DefaultObjectWrapper()); String path="專案絕對路徑"; String col ="日期,列名1,列名2"; String fd="time,col1,col2"; String field[]=fd.split(","); String column[] = col.split(","); List<String> fieldarr =AutoUtil.array2List(field); List<String> columnarr =AutoUtil.array2List(column); //引數資訊 String packageSuffix=".最後一級包名"; String beanName="TestBean"; String comment="註釋"; String beanPackage="com.dx.bean"+packageSuffix; //生成java bean List<Property> propertyList = AutoUtil.getTableProperty2Bean(fieldarr, columnarr); //生成檔案 AutoUtil.createEntity(cfg, propertyList,beanPackage, beanName, comment,path); } catch (IOException e) { e.printStackTrace(); } } }
相關推薦
利用freemark生成實體類
1.需求場景資料報表大量實體類生成,模板化,降低維護難度。2.專案環境普通java專案 freemark3.實現步驟(1)匯入freemark jar包(使用版本FreeMarker_2.3.23)(2)構建模板檔案,比如 entity層entity.ftlpackage $
利用MyBatis-Generator工具根據現有資料庫生成實體類和Mapper介面
第一步:在pom.xml中匯入mybatis-generator工具包 <dependencies> <dependency> <groupId>org.mybatis.generator</groupId>
利用mybatis框架逆向工程生成實體類dao和mapper
1、引入maven依賴 <build> <finalName>demo6</finalName> <plugins> <plugin> &l
利用mybatis generator生成實體類、Mapper介面以及對應的XML檔案
專案中通常會遇到資料的持久化,如果是採用mybatis的orm,就會涉及到生成xml的問題,剛好mybatis官網提供了這麼個外掛
Mybatis自動生成實體類和實體映射工具
ase 忽略 路徑 package mapping decimal rri upd 需要 Mybatis Mysql生成實體類 用到的Lib包: mybatis-generator-core-1.3.2.jarmysql-connector-java-5.1.30.jar
AutomaticallyProfile 自動化引擎 MyBatis和DB溝通的引擎 (根據數據庫信息自動給生成實體類那些...)
... 數據庫名 ica cmd 信息 images 類名 sources 生成 1.首先建立一個文件夾AutomaticallyProfile 文件夾內有四個jar包 :mysql.jar mybat
使用mybatis反向自動生成實體類和mapper映射文件和接口文件
http 實體類 pos -- cti 連接 rule ima app 問題描述: 最近在做web的東西,想要從數據庫中生成實體類,然後操作數據庫,然後做一些增刪改查的工作, 發現可以直接使用mybatis直接生成javabean,還有可以直接生成mapper的映射文件。具
maven 工程mybatis自動生成實體類
type string lai 分享 leg xsd enables resolv drive generatorConfig.xml [html] view plain copy <?xml version="1.0" encoding="UTF-8"
【從零開始搭建自己的.NET Core Api框架】(三)集成輕量級ORM——SqlSugar:3.3 自動生成實體類
i++ 點運算 自己的 yui content project style ref 數據庫表 系列目錄 一. 創建項目並集成swagger 1.1 創建 1.2 完善 二. 搭建項目整體架構 三. 集成輕量級ORM框架——SqlSugar 3.1 搭建環境
IDEA連接數據庫自動生成實體類
tab and png cti ide rate 技術 添加 自動 1.連接數據庫 (1)按下圖 , 點擊view-----選擇tool windows----------選擇database並點擊 (2)彈出Database窗口,點擊加號--------
mybatis根據數據庫表結構自動生成實體類,dao,mapper
nts cat mybatis pack edt enc ren val 執行 首先, pom需要引入 <!-- mysql --> <dependency> <groupId>mysql</groupI
通過數據庫中的表,使用 MyEclipse2017的反向生成工具-->hibernate反轉引擎引擎(MyEclipse2017自帶的插件) 來反轉生成實體類和對應的映射文件
需要 ria sdn http rap div aci radi 工具 Java視圖 1、在MyEclipse中,Java視圖下,新建一個普通的java project,新建該項目的目的是:用來接收反轉引擎生成的實體類和對應的映射文件。 2、在項目上右鍵 -->
Android Studio 外掛 GsonFormat 自動生成實體類
Android Studio 中自帶 GsonFormat 外掛,可以根據你的Json 串,自動生成相應的實體類。非常方便。介紹下使用教程: 第一步 : File --->Setting------>Plugins,然後搜尋GsonFormat。
myeclipse反轉生成實體類
①新建一個Java專案 ②配置資料來源
SpringBoot中使用Mybatis Generator進行資料庫表逆向工程自動生成實體類和mapping對映
1.首先在專案中建立一個GeneratorDisplay工具類,放在com.springbootdemo.util下 package com.springbootdemo.util; import java.io.File; import java.util.ArrayList; imp
symfony 資料庫生成實體類
symfony 資料庫生成實體類 php bin/console doctrine:mapping:import --force ScTradeInStaAdminBundle annotation ScTradeInStaAdminBundle :bundle名 annotat
關於Eclipse使用JAP Tools 反射生成實體類
在專案.setting 目錄中 找到org.eclipse.wst.common.project.facet.core.xml 檔案,然後在該檔案<faceted-project></faceted-project>之間加入<installed facet=
GsonFormat為你快速高效生成實體類
一、Android Studio快速新增Gson 具體操作: 1、File->Project Structure: 2、app->Dependencies->"
IntelliJ IDEA(編碼篇):快速生成實體類
目錄 說在前面 配置資料庫連線 選擇Mysql,連線資料庫 生成實體類(Entity) 原生方式 lombok方式 總結 原始碼下載 說在前面 作為一名碼字的猴子,除了Ctrl+c 和 Ctrl+v,還應該懂點其他的(非快捷鍵)。 前陣子寫了一篇:
使用mybatis外掛generator生成實體類,dao層和mapper對映
本文主要講如何使用generator外掛自動生成我們所需要的實體類,Dao層和對應的mapper對映檔案,首先講一下命令列下用本地jar包使用,然後再講專案中整合進generator外掛進行生成。現在教程開始(Mysql資料庫為例) 一 本