1. 创建Project
访问http://appfuse.org/display/APF/AppFuse+QuickStart 或中文http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese
参考网站的说明创建即可。
2. 配置Oracle
1) 将Project中pom.xml中的Database settings 从默认的mysql修改为oracle配置,如:
<dbunit.dataTypeFactoryName>org.dbunit.ext.oracle.OracleDataTypeFactory</dbunit.dataTypeFactoryName>
<dbunit.schema>INTERFACE_WIRELESS</dbunit.schema> <!-- Make sure to capitalize the schema name -->
<hibernate.dialect>org.hibernate.dialect.Oracle9Dialect</hibernate.dialect>
<jdbc.groupId>com.oracle</jdbc.groupId>
<jdbc.artifactId>ojdbc14</jdbc.artifactId>
<jdbc.version>10.2.0.2.0</jdbc.version>
<jdbc.driverClassName>oracle.jdbc.OracleDriver</jdbc.driverClassName>
<jdbc.url>jdbc:oracle:thin:@192.168.1.6:1521:orcl</jdbc.url>
<jdbc.username>INTERFACE_WIRELESS</jdbc.username>
<jdbc.password>INTERFACE_WIRELESS</jdbc.password>
2) 解决表外键关联导致反向工程报错的问题
cmd到Project目录,执行下面的命令:
mvn appfuse:copy-templates
找到src/test/resources/appfuse/model路径下的Ejb3PropertyGetAnnotation.ftl文件,
将${pojo.generateJoinColumnsAnnotation(property)}改为${pojo.generateJoinColumnsAnnotation(property,cfg)}即可。
3) 设置只对指定的表生成相应的model
修改pom.xml中<artifactId>appfuse-maven-plugin</artifactId>下面的相关配置,在<configuration>下加入如下语句:
<componentProperties>
<revengfile>src/test/resources/hibernate.reveng.xml</revengfile>
</componentProperties>
然后创建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>
<sql-type jdbc-type="NUMERIC" hibernate-type="java.lang.Long"/>
</type-mapping>
<table-filter match-name="TABLE_NAME_1"></table-filter>
<table-filter match-name="TABLE_NAME_2"></table-filter>
<table name="TABLE_NAME_1">
<primary-key>
<generator class="sequence">
<param name="sequence">SEQ_TABLE_NAME_1</param>
</generator>
<key-column name="ID"/>
</primary-key>
</table>
</hibernate-reverse-engineering>
type-mapping中sql-type为numeric的映射为Long型,比如设置字段为number(19),如果不指定,默认会生成BigDecimal类型。
table-filter这里设置哪些表需要反向生成model,也可以设置哪些表不需要反向,具体可以查看:http://static.appfuse.org/plugins/appfuse-maven-plugin/
3. 执行下面的命令生成Model
mvn appfuse:gen-model
在你的Project下的model就生成好了。
4. 由model 生成CRUD(dao、manager、Action),执行下面的命令:
mvn appfuse:gen
如果想生成dao和manager,需要把pom.xml中amp.genericCore参数设为false,amp.fullSource设为true。命令执行前需要在hibernate.cfg.xml中增加相应的model
参考网站:
http://appfuse.org/display/APF/AppFuse+QuickStart
http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese
http://static.appfuse.org/plugins/appfuse-maven-plugin/