本文基于上一篇《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/