文档章节

YMP开发框架快速上手(五)— 自动生成数据实体

有理想的鱼
 有理想的鱼
发布于 2016/03/25 02:45
字数 1339
阅读 847
收藏 2

本文基于上一篇《YMP开发框架快速上手(四)— 极速开发体验》博文中创建的ymp-examples-webapp项目,介绍如果快速生成数据实体。

YMP框架的数据实体生成方式目前有两种:

  1. 直接执行实体生成器类

  2. 通过YMP框架提供的Maven扩展工具插件

准备工作

在生成实体之前,需要先将示例工程中的默认数据源和实体生成规则配置好,确认ymp-conf.properties以下内容:

  • 配置默认数据源:

      # 数据库连接字符串
      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=
    
  • 实体生成规则:

      # 是否使用类名后缀,不使用和使用的区别如: 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
    

方式一:直接执行实体生成器类

步骤1:修改依赖关系

打开pom.xml文件并将下列依赖配置的注释去掉:

<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>

步骤2:执行实体生成器

在示例工程的根路径下执行Maven命令:

mvn compile exec:java -Dexec.mainClass="net.ymate.platform.persistence.jdbc.scaffold.EntityGenerator"

注意:在Web工程中采用方式一生成实体需要注意以下几点问题:

  1. 示例项目是Web程序,编译期间需要servlet-apijsp-api包依赖,运行时是不需要它们的(因为Web容器中已提供),由于它们的作用域被设置为provided, 当执行实体生成器时会产生找不到这两个包的编译错误,所以当你需要执行实体生成器时就将这两个包的<scope>provided</scope>配置注释掉。

  2. 基于YMP框架的Web项目,其根路径默认为WEB-INF\,而普通Java工程的根路径默认为当前项目的CLASSPATH,所以在执行实体生成器时,需要确认ymp.configs.configuration.config_home和日志相关的配置参数的正确性。

  3. 确认代码生成的文件输出路径ymp.params.jdbc.output_path参数配置的正确性。

  4. 由于代码生成器执行时依赖YMP框架(也就是说所有的模块都将会被初始化),所以需要通过ymp.excluded_modules参数屏蔽掉不需要启动的模块。

通过方式一生成实体显示有些繁琐,需要注意和调整的内容比较多,因此推荐大家使用第二种方式,采用方式二请忽略上述限制。

方式二:通过YMP框架提供的Maven扩展工具插件

步骤1:编译并安装ymate-maven-extension扩展工具

  • 下载扩展工具源码(YMP框架Maven扩展工具项目地址

      执行命令:git clone https://git.oschina.net/suninformation/ymate-maven-extension.git
    
  • 编译并安装到本地Maven仓库

      执行命令: cd ymate-maven-extension
               mvn clean install
    

步骤2:将pom.xml中添加ymate-maven-plugin插件

	<plugin>
	    <groupId>net.ymate.maven.plugins</groupId>
	    <artifactId>ymate-maven-plugin</artifactId>
	    <version>1.0-SNAPSHOT</version>
	</plugin>

步骤3:执行插件生成实体

在工程根路径下执行命令:

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_namedb_username参数,否则会产生异常;

One More Thing

YMP不仅提供便捷的Web及其它Java项目的快速开发体验,也将不断提供更多丰富的项目实践经验。

感兴趣的小伙伴儿们可以加入 官方QQ群480374360,一起交流学习,帮助YMP成长!

了解更多有关YMP框架的内容,请访问官网:http://www.ymate.net/

© 著作权归作者所有

有理想的鱼

有理想的鱼

粉丝 43
博文 10
码字总数 43696
作品 13
沈阳
高级程序员
私信 提问
加载中

评论(0)

有理想的鱼/ymate-platform-v2

YMP v2——轻量级JAVA应用开发框架 YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们...

有理想的鱼
2016/02/21
0
0
YMP v2发布,轻量级Web开发框架

YMP v2——轻量级JAVA应用开发框架 YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们...

有理想的鱼
2016/02/18
2.1K
1
Java 应用开发框架--YMP

YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们一直不懈努力的目标! 主要技术特点...

有理想的鱼
2013/09/14
1.2W
8
有理想的鱼/ymateplatform

YMP V2.0 is HIGHLY RECOMMENDED 重要提示 请访问YMP框架新版本代码仓库:YMP V2.0. 推荐大家使用框架新版本, 更优化, 更简单, 文档更全, 代码地址如下: GitHub:https://github.com/suninf...

有理想的鱼
2014/02/25
0
0
YMP开发框架快速上手(二)— JavaWeb工程中集成YMP框架

本文将介绍如何在Java Web工程中集成YMP框架,操作过程基于IntelliJ IDEA做为开发环境,工程结构采用Maven构建: IntelliJ IDEA下载地址: https://www.jetbrains.com/idea/download/ Maven下...

有理想的鱼
2016/02/23
883
5

没有更多内容

加载失败,请刷新页面

加载更多

植物:君子兰

ylbtech-植物:君子兰 君子兰(学名: Clivia miniata),别名 剑叶石蒜、大叶石蒜,是 石蒜科 君子兰属的 多年生草本植物,属观赏 花卉,原产于 南非南部。 花期长达30-50天,以冬春为主,元...

osc_gp8avabl
6分钟前
17
0
植物:玉簪

ylbtech-植物:玉簪 玉簪(学名: Hosta plantaginea (Lam.) Aschers.),又名 白萼、白鹤仙,是 百合科,玉簪属的 多年生宿根植物。叶基生,成簇,卵状心形、卵形或卵圆形。 花葶高40-80...

osc_1psr53ow
7分钟前
10
0
植物:迎春花

ylbtech-植物:迎春花 迎春花(学名: Jasminum nudiflorum Lindl. ):别名 迎春、黄素馨、金腰带,落叶 灌木丛生。株高30-500厘米。小枝细长直立或拱形下垂,呈纷披状。3小叶复叶交互对生,...

osc_fscujk71
8分钟前
26
0
植物:雪铁芋

ylbtech-植物:雪铁芋 雪铁芋(学名: Zamioculcas zamiifolia Engl.),又名为 金钱树。是多年生常绿 草本植物,是极为少见的带地下 块茎的观叶植物。地上部无主茎,不定芽从块茎萌发形成大...

osc_47qtuhkb
9分钟前
11
0
Java之关键字的使用

java中有很多的关键字,他们的使用让Java语言变得更加灵活、易用,下面将介绍Java中最常用的几个关键字并说明其用法。 关键字:return 1.使用范围: 使用在方法体中 2.作用: ① 结束方法 ②...

RealBruce
10分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部