我这里说的生成pojo是指在已经设计好数据表结构后, 通过执行 mvn appfuse:gen-model 命令根据表生成相应的pojo.
开始时我用的是 mysql 数据库, 设计好数据表后通过上面的命令能正确的生成所有我自己创建的表对应的 pojo, 但如果重复执行上面的命令, 系统也会按规按矩的再次重复生成所有的 pojo, 而如果我只是新加了一个表, 也会重复生成以前生成过的 pojo.
当然这还不是问题, 因为最后还是能得到要得到的结果.
后来我把数据库换成 sqlserver 2000, 这次的问题不只是上面的问题, 而且上面的命令会生成部分系统表对象的 pojo, 这显然不是我要的了, 不过这个问题其实也很好解决, 不就是多生成了几个 pojo嘛, 直接在源代码里删了就行了. 当然还是其他更"正规"点的解决办法.
下面就看"正规"点的解决办法:
找到生成项目的 myproject/target/test-classes/hibernate.reveng.xml 文件.
里面的内容大眼一看差不多能懂, 有定义类型映射的, 有按表名过滤表的.
原始文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering
SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
<type-mapping>
<!-- jdbc-type is name fom java.sql.Types -->
<sql-type jdbc-type="VARCHAR" length='1' hibernate-type="yes_no"/>
<!-- length, scale and precision can be used to specify the mapping precisly -->
<sql-type jdbc-type="NUMERIC" precision='1' hibernate-type="boolean"/>
<!-- the type-mappings are ordered. This mapping will be consulted last,
thus overriden by the previous one if precision=1 for the column -->
<sql-type jdbc-type="BIGINT" hibernate-type="java.lang.Long"/>
<sql-type jdbc-type="INTEGER" hibernate-type="java.lang.Long"/>
<sql-type jdbc-type="NUMERIC" hibernate-type="java.lang.Long"/>
</type-mapping>
<!-- BIN$ is recycle bin tables in Oracle -->
<table-filter match-name="BIN$.*" exclude="true"/>
<!-- Exclude AppFuse tables from all catalogs/schemas -->
<!-- 按表名过滤表 -->
<table-filter match-name="app_user" exclude="true"/>
<table-filter match-name="role" exclude="true"/>
<table-filter match-name="user_role" exclude="true"/>
</hibernate-reverse-engineering>
现在, 如果我要过滤掉 teacher 表 和 系统表, 则可以修改如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering
SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
<schema-selection match-schema="dbo"/>
<type-mapping>
<!-- jdbc-type is name fom java.sql.Types -->
<sql-type jdbc-type="VARCHAR" length='1' hibernate-type="yes_no"/>
<!-- length, scale and precision can be used to specify the mapping precisly -->
<sql-type jdbc-type="NUMERIC" precision='1' hibernate-type="boolean"/>
<!-- the type-mappings are ordered. This mapping will be consulted last,
thus overriden by the previous one if precision=1 for the column -->
<sql-type jdbc-type="BIGINT" hibernate-type="java.lang.Long"/>
<sql-type jdbc-type="INTEGER" hibernate-type="java.lang.Long"/>
<sql-type jdbc-type="NUMERIC" hibernate-type="java.lang.Long"/>
</type-mapping>
<!-- BIN$ is recycle bin tables in Oracle -->
<table-filter match-name="BIN$.*" exclude="true"/>
<!-- Exclude AppFuse tables from all catalogs/schemas -->
<table-filter match-name="app_user" exclude="true"/>
<table-filter match-name="role" exclude="true"/>
<table-filter match-name="user_role" exclude="true"/>
<table-filter match-name="teacher" exclude="true"/>
<table-filter match-name="dtpro.*" exclude="true"/>
<table-filter match-name="sys.*" exclude="true"/>
</hibernate-reverse-engineering>
这样, 再次运行 mvn appfuse:gen-model 命令时就会过滤掉 teacher表, 以及以 dtpro 和 sys 开头的表.
还需要注意的是通配符写法.
这样就能生成自己想生成的 pojo了.
分享到:
相关推荐
由于appfuse主页的mvn自动生成项目架构代码无法显示,个中原因,你懂的~被墙了。所以在此制作了自动生成代码包,进入之后点击页面可以出现生成代码。
使用appfuse2.0,下载过来的实例源码,没有jar包
自己学习appfuse2的相关日志,里面包含了一些在网上已经文档的综合.
使用Java Swing开发的一个自动生成POJO的软件,能够生成Appfuse框架需要的带有XDoclet代码的POJO.
Appfuse2的一个文档,包括了一些常用命令
建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2 spring3.0 hibernte3.3 struts2.1.8
个人在应用Appfuse2开发时写的图文搭建文档,数据库是Oracle
本文以一个 J2EE 开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用 AppFuse 一步步地构建 J2EE 项目。通过阅读本文,读者不仅能够学会用 AppFuse 进行开发,而且能够充分体会到 AppFuse...
使用appfuse2建立项目原型骨架的步骤 appfuse2 项目原型 骨架
本文档详细描述了AppFuse与SpringMVC+mybatis整合的过程,只要你懂一些基本的eclipse操作和基本的maven命令,就可以在三分钟之内迅速的搭建出一个AppFuse的架构
讲述如何创建POJO(对应相应的数据表)和 DAO(管理POJO持久化操作的对象)。 本教程将向你展示如何在一个数据库里创建表,以及如何完成访问这些表的Java代码。我们将建立一个对象以及处理(保存/检索/删除)这些类到数据库...
AppFuse提供了Web系统开发过程中都需要开发的一些功能,如登陆、用户密码加密,用户管理、根据不同的用户可以展现不同的菜单.J2EE开发者也可以在此基础上开发加入自己的功能模块。利用这个框架可以大幅度的提高开发...
主要是自己从网络上搜集的一些关于appfuse1.8.2-2.0.2的一些相关资料,间或有点自己试验的记录,还有点maven和quartz的东东,之前我主要是用1.8.2构建项目,感觉还不错,希望对想学习appfuse的人有些帮助.
代码自动生成工具appfuse的中文使用手册
06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬
Appfuse是一个开源的工程应用,它集成了现在最流行的开发框架到该应用中,使用Maven可以很方便的开发和部署因为。也可以集成到现在流行的开源开发工具如eclipse,idea等。现在让我们简单的看看APPFUSE开发应用的简单...
NULL 博文链接:https://guava.iteye.com/blog/633528
新手使用appfuse2.0,启动步骤和配置过程
appfuse 有struts2+hibernate+spring的整合 springmvc+hibernate+spring的整合 多模块,但模块都有 学习开发参考使用非常方便 可以到官方下载最新版的,我只是把自己下载的打包整理一下 注意哈,都是基于maven的...
AppFuse2.1所需包,主要包括Spring MVC+Hibernate4 还有一些其它包!