本文基於上一篇《YMP開發框架快速上手(四)— 極速開發體驗》博文中建立的ymp-examples-webapp
項目,介紹若是快速生成數據實體。java
YMP框架的數據實體生成方式目前有兩種:mysql
直接執行實體生成器類git
經過YMP框架提供的Maven擴展工具插件web
在生成實體以前,須要先將示例工程中的默認數據源和實體生成規則配置好,確認ymp-conf.properties
如下內容:sql
配置默認數據源:數據庫
# 數據庫鏈接字符串 ymp.configs.persistence.jdbc.ds.default.connection_url=jdbc:mysql://localhost:3306/mydb # 數據庫訪問用戶名 ymp.configs.persistence.jdbc.ds.default.username=root # 數據庫訪問密碼 ymp.configs.persistence.jdbc.ds.default.password=
實體生成規則:api
# 是否使用類名後綴,不使用和使用的區別如: User-->UserModel,默認爲false #ymp.params.jdbc.use_class_suffix= # 是否採用鏈式調用模式,默認爲false ymp.params.jdbc.use_chain_mode=true # 數據庫名稱(僅針對特定的數據庫使用,如Oracle),默認爲空 #ymp.params.jdbc.db_name= # 數據庫用戶名稱(僅針對特定的數據庫使用,如Oracle),默認爲空 #ymp.params.jdbc.db_username= # 數據庫表名稱前綴,多個用'|'分隔,默認爲空 ymp.params.jdbc.table_prefix=ymp_ # 否剔除生成的實體映射表名前綴,默認爲false ymp.params.jdbc.remove_table_prefix=true # 預生成實體的數據表名稱列表,多個用'|'分隔,默認爲空表示所有生成 ymp.params.jdbc.table_list= # 排除的數據表名稱列表,在此列表內的數據表將不被生成實體,多個用'|'分隔,默認爲空 #ymp.params.jdbc.table_exclude_list= # 生成的代碼文件輸出路徑,默認爲${root} #ymp.params.jdbc.output_path= # 生成的代碼所屬包名稱,默認爲: packages ymp.params.jdbc.package_name=net.ymate.platform.examples
打開pom.xml文件並將下列依賴配置的註釋去掉:app
<dependency> <groupId>net.ymate.platform</groupId> <artifactId>ymate-platform-persistence-jdbc</artifactId> <version>2.0-SNAPSHOT</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.22</version> </dependency>
在示例工程的根路徑下執行Maven命令:框架
mvn compile exec:java -Dexec.mainClass="net.ymate.platform.persistence.jdbc.scaffold.EntityGenerator"
注意:在Web工程中採用
方式一
生成實體須要注意如下幾點問題:webapp
示例項目是Web程序,編譯期間須要
servlet-api
和jsp-api
包依賴,運行時是不須要它們的(由於Web容器中已提供),因爲它們的做用域被設置爲provided
, 當執行實體生成器時會產生找不到這兩個包的編譯錯誤,因此當你須要執行實體生成器時就將這兩個包的<scope>provided</scope>
配置註釋掉。基於YMP框架的Web項目,其根路徑默認爲
WEB-INF\
,而普通Java工程的根路徑默認爲當前項目的CLASSPATH
,因此在執行實體生成器時,須要確認ymp.configs.configuration.config_home
和日誌相關的配置參數的正確性。確認代碼生成的文件輸出路徑
ymp.params.jdbc.output_path
參數配置的正確性。因爲代碼生成器執行時依賴YMP框架(也就是說全部的模塊都將會被初始化),因此須要經過
ymp.excluded_modules
參數屏蔽掉不須要啓動的模塊。
經過方式一
生成實體顯示有些繁瑣,須要注意和調整的內容比較多,所以推薦你們使用第二種方式,採用方式二
請忽略上述限制。
下載擴展工具源碼(YMP框架Maven擴展工具項目地址)
執行命令:git clone https://git.oschina.net/suninformation/ymate-maven-extension.git
編譯並安裝到本地Maven倉庫
執行命令: cd ymate-maven-extension mvn clean install
ymate-maven-plugin
插件<plugin> <groupId>net.ymate.maven.plugins</groupId> <artifactId>ymate-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> </plugin>
在工程根路徑下執行命令:
mvn ymate:entity
輸出內容:
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] ......(此處省略若干字) [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:entity (default-cli) @ ymp-examples-webapp --- 三月 25, 2016 12:25:07 上午 net.ymate.platform.core.YMP init 信息: __ ____ __ ____ ____ \ \ / / \/ | _ \ __ _|___ \ \ V /| |\/| | |_) | \ \ / / __) | | | | | | | __/ \ V / / __/ |_| |_| |_|_| \_/ |_____| Website: http://www.ymate.net/ 三月 25, 2016 12:25:07 上午 net.ymate.platform.core.YMP init 信息: Initializing ymate-platform-core-2.0.0-GA build-20160324-2339 - debug:true ......(此處省略若干字) 信息: [show tables][][1][13ms] Output file "/Users/suninformation/IdeaProjects/ymate-platform-examples/ymp-examples-webapp/src/main/java/net/ymate/platform/examples/model/User.java". [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.577s [INFO] Finished at: Fri Mar 25 00:25:08 CST 2016 [INFO] Final Memory: 10M/163M [INFO] ------------------------------------------------------------------------
經過插件生成的代碼默認放置在src/main/java
路徑,當數據庫表發生變化時,直接執行插件命令就能夠快速更新數據實體對象,是否是很更方便呢,你們能夠動手嘗試一下!:p
特別提示:
- 若是使用的JDBC驅動是
mysql-connector-java-6.x
及以上版本時,須要配置db_name
和db_username
參數,不然會產生異常;
YMP不只提供便捷的Web及其它Java項目的快速開發體驗,也將不斷提供更多豐富的項目實踐經驗。
感興趣的小夥伴兒們能夠加入 官方QQ羣480374360,一塊兒交流學習,幫助YMP成長!
瞭解更多有關YMP框架的內容,請訪問官網:http://www.ymate.net/