使用appgen自动生成pojo

本文介绍如何使用AppFuse工具自动生成Pojo和hbm文件,涵盖Oracle数据库配置、AppFuse安装及环境搭建步骤,并解决常见问题。

使用Appfuse自動生成Pojo和hbm檔

參考資源

使用 AppFuse 的七個理由
http://www.ibm.com/developerworks/cn/java/j-appfuse/index.html

使用 AppFuse 快速構建 J2EE 應用
http://www.ibm.com/developerworks/cn/java/j-lo-appfuse/index.html




Appfuse包含的東西很多,我們這邊只會主要是使用到appgen這個工具

1.準備好DB環境,這邊是使用Oracle。本來是想用DB2來測,可是出現了錯誤訊息:不支援的encording,在想是不是不支援Big5呢><。


2.下載Appfuse,目前版本是1.9.4
https://appfuse.dev.java.net/servlets/ProjectDocumentList


3.解壓縮後準備填寫DB連線資料,找到build.properties和properties.xml這兩個檔案。
我在測試時發現如果只修改build.properties他執行時一直組不成我真正要的url,氣到乾脆直接去把properties.xml裡有可能的參數都改成我設的變數。


build.properties

database.type=oracle
database.host=127.0.0.1
database.name=oras01
database.admin.url=jdbc:oracle:thin:@127.0.0.1:1521:oras01
database.admin.username=XXX
database.admin.password=XXX
database.schema=XXX
hibernate.dialect=org.hibernate.dialect.OracleDialect
database.driver_class=oracle.jdbc.driver.OracleDriver



properties.xml

<!-- Defaults for database.properties -->
<property name="database.jar" location="${mysql.jar}"/>
<property name="database.type" value="mysql"/>
<property name="database.name" value="${database.name}"/>
<property name="database.host" value="localhost"/>
<property name="database.username" value="${database.admin.username}"/>
<property name="database.password" value="${database.admin.password}"/>

<!-- database URL for creating other dbs - used in db-create target -->
<property name="database.admin.url" value="${database.admin.url}"/>
<property name="database.admin.username" value="${database.admin.username}"/>
<property name="database.admin.password" value="${database.admin.password}"/>
<property name="hibernate.dialect" value="${hibernate.dialect}"/>
<property name="database.driver_class" value="${database.driver_class}"/>
<property name="database.url" value="${database.admin.url}"/>
<property name="database.show_sql" value="true"/>
<property name="database.schema" value=""/>



3.把oracle的jdbc jar檔ojdbc14.jar複製到 \extras\middlegen\lib\middlegen-2.1\ 下


4.到 extras\appgen\下執行cmd,執行:

set ANT_OPTS=-Xmx512M
ant install

之後跟著指令輸入值,就可以在 appfuse\extras\middlegen\scr 下看到你的java和 hbm檔了




P.S 1 執行的時候如果出現找不到CATALINA_HOME參數這個錯誤的話,在系統變數里新增該變數指向你的Tomcat根目錄

P.S 2 mySQL資料庫不用,可是若DB為Oracle則在build.properties要多設一個參數database.schema=bli,否則在執行時會告訴你找不到該Table。參考 http://chq.name/content/view/127/49/

P.S 3 在執行ant install要消耗的memory似乎不小因而出現了OutOfMemoryError,解決方法先把JVM加大set ANT_OPTS=-Xmx512M 。參考 http://tag.youkuaiyun.com/Article/2f4ce478-d25b-4473-adae-d62a305968d0.html
### 使用 IntelliJ IDEA 和 JPA 自动生成 POJO 类 在 IntelliJ IDEA 中,结合 JPA(Java Persistence API)可以根据数据库表自动生成 POJO(Plain Old Java Object)类,这在实际开发中可以显著提高效率,减少手动编写实体类的工作量。以下是具体的操作步骤和注意事项。 #### 配置数据库连接 首先,需要在 IntelliJ IDEA 中配置数据库连接,以便能够访问数据库并基于表结构生成 POJO 类。 1. 打开 IntelliJ IDEA 并选择需要操作的项目。 2. 在顶部菜单中选择 **View > Tool Windows > Database**,打开数据库工具窗口。 3. 点击 **+** 号,选择需要连接的数据库类型(如 MySQL、PostgreSQL 等),填写数据库连接信息,包括主机地址、端口、数据库名称、用户名和密码。 4. 测试连接成功后,点击 **OK** 完成配置 [^2]。 #### 生成 POJO 类 完成数据库连接后,可以基于数据库表生成 POJO 类。IntelliJ IDEA 提供了多种方式来实现这一目标,包括使用 **Persistence 工具窗口** 和第三方插件如 **JPA Buddy**。 1. **使用 Persistence 工具窗口** - 打开 **Persistence** 工具窗口(通常在右侧边栏)。 - 如果尚未配置持久化单元,点击 **+** 号并选择 **Persistence Unit**,按照向导完成配置。 - 在 Persistence 工具窗口中,右键点击 **Entities**,选择 **Generate Persistence Mapping > From Database Schema**。 - 在弹出的向导中选择需要生成实体类的数据库表,并指定实体类的包路径。 - 确认设置后,IntelliJ IDEA 会自动生成对应的 POJO 类,并将其添加到项目的持久化单元中 [^1]。 2. **使用 JPA Buddy 插件** - JPA Buddy 是一个强大的 JPA 插件,能够简化 JPA 实体的创建和管理。 - 在 IntelliJ IDEA 的插件市场中搜索并安装 **JPA Buddy**。 - 安装完成后,在数据库工具窗口中右键点击某个表,选择 **Generate JPA Entity**。 - JPA Buddy 会根据表结构生成实体类,并自动处理字段类型映射、主键配置等复杂问题。 - 支持自定义生成模板,允许开发者根据项目需求调整生成的代码结构 [^3]。 #### 使用 Lombok 简化 POJO 类 为了进一步减少样板代码的编写,可以结合 **Project Lombok** 使用。Lombok 提供了注解驱动的方式,自动生成 getter、setter、toString 等方法。 1. 在 `pom.xml` 中添加 Lombok 依赖: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <scope>provided</scope> </dependency> ``` 2. 在生成的 POJO 类中使用 Lombok 注解,例如: ```java import lombok.Data; import javax.persistence.*; @Entity @Table(name = "user") @Data public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username") private String username; @Column(name = "email") private String email; } ``` 使用 `@Data` 注解后,Lombok 会自动生成 getter、setter、equals、hashCode 和 toString 方法 [^4]。 #### 自定义生成模板 IntelliJ IDEA 允许开发者自定义代码生成模板,以确保生成的 POJO 类符合团队的编码规范。 1. 打开 **Settings > Editor > File and Code Templates**。 2. 选择 **Code > JPA Entity**,修改模板内容以满足项目需求。 3. 保存模板后,新生成的 POJO 类将使用自定义的模板格式 [^3]。 #### 注意事项 - 在生成 POJO 类时,确保数据库表的字段命名与 Java 命名规范一致,避免生成的字段名不符合驼峰命名规则。 - 对于复杂的数据库结构(如多对多关系、继承映射等),可能需要手动调整生成的代码,以确保 JPA 注解正确无误。 - 如果使用 JPA Buddy 插件,建议定期检查更新,以获取最新的功能和 bug 修复 [^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值