appFuse从DB创建代码(以Oracle为例)

本文详细介绍如何使用AppFuse框架集成Oracle数据库,包括配置步骤、解决反向工程问题的方法及如何定制化生成实体模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值