Primefaces,Hibernate和SpringRoo集成
SpringRoo是一种开放源代码软件工具,它使用基于约定的约定概念来促进以驱动命令行方式生成基于Java的企业软件应用程序。
我们介绍了一系列教程,可帮助您逐步创建企业应用程序。
Primefaces,Spring Framework,Hibernate,EclipseLink和其他类型的数据存储有选择地组合在一起,以帮助您创建企业应用程序。
本教程的不同之处在于,您不会开发以前开发的任何层。
一切都将分配给SpringRoo,您将学习所需的集成和命令,这些信息和命令可帮助您安装和运行第一个应用程序。
最终项目结构
必备工具
- SpringRoo 1.2.5
- JDK 1.6以上
- Apache Tomcat 7
- Maven 2+
- Eclipse开普勒4.3
- MySQL 5.x
Eclipse Spring Roo集成
要将您的Eclipse IDE与SpringRoo软件集成,您必须仔细遵循以下步骤:
将SpringRoo软件下载到您的本地目录并解压缩。
为了澄清起见,我们将其解压缩到D:\SpringRoo \ spring-roo-1.2.5.RELEASE。将SpringRoo插件安装到Eclipse IDE中。
这可以通过进入帮助-安装新软件并在地址输入中输入给定的https://dist.springsource.com/release/TOOLS/update/e4.3/来完成。检查Core/Spring IDE和扩展/Spring IDE。
单击"下一步",然后完成并等待安装过程完成。
确保您重新启动了Eclipse IDE。
如果您已经成功安装了Spring Roo,那么您将获得如下所示的欢迎屏幕。在Project Explorer中,创建一个新项目,然后选择Spring Roo Project。
单击下一步,然后在项目名称中输入Primefaces-SpringRoo-Hibernate-Sample。
命名您的顶级软件包名称,并确保您的项目类型是标准的。点击配置Roo安装并添加下载的Spring Roo库。
确保选择一种WAR包装方式。
单击下一步,然后单击完成。
SpringRoo将使用您提供的信息开始构建您的项目。创建SpringRoo项目后,您必须注意,已打开SpringRoo Shell命令–插件shell–。
如果您在启动和准备过程中遇到了一些障碍,只需重新启动Eclipse并通过单击Open Roo Shell for projects再次激活SpringRoo Shell。现在,您准备开始构建项目。
数据库视图
SpringRoo促进了一种已知的范例,使您的JPA实体一目了然地可以使用。
您可以对数据库的表进行反向工程,以消除执行其他命令的需要。
因此,让我们看看我们真正想要实现的业务表是什么。
总的来说,我们有两个表。
以一对多关联类型关联的Employee和Phone。
电话表在雇员表中包含一个外键引用的EmployeeId字段。
以下是必需的SQL创建脚本。
EmployeeTable.sql
CREATE TABLE `employee` ( `EMP_ID` int(11) NOT NULL AUTO_INCREMENT, `EMP_NAME` varchar(45) DEFAULT NULL, `EMP_HIRE_DATE` varchar(30) DEFAULT NULL, `EMP_SALARY` decimal(11,4) DEFAULT NULL, PRIMARY KEY (`EMP_ID`) ) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;
PhoneTable.sql
CREATE TABLE `phone` ( `PH_ID` int(11) NOT NULL AUTO_INCREMENT, `PH_NO` varchar(30) DEFAULT NULL, `EMP_ID` int(11) DEFAULT NULL, PRIMARY KEY (`PH_ID`), KEY `PH_EMP_ID_idx` (`EMP_ID`), CONSTRAINT `PH_EMP_ID` FOREIGN KEY (`EMP_ID`) REFERENCES `employee` (`EMP_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
开发SpringRoo应用程序
使用SpringRoo软件开发企业应用程序确实包含对SpringRoo Shell执行多个命令。
按照明确的步骤创建所需的应用程序。
安装程序通过执行持久性设置-数据库MYSQL-提供者HIBERNATE --hostName本地主机-用户名root-密码根--databaseName theitroad --persistenceUnit hibernate.jpa来使用持久性框架。
安装MySQL驱动程序,这将帮助您的SpringRoo软件在逆向工程开始时加载所需的驱动程序。
我们在D:\mysql-connector-java-5.1.18-bin.jar上有一个MySQL驱动程序。
执行" osgi install --url文件:\ D:\mysql-connector-java-5.1.18-bin.jar"就足够了。
如果您错过执行此指令,则在连接MySQL数据库进行反向工程阶段时," com.mysql.jdbc.Driver"消息将不提供JDBC驱动程序。创建JPA实体,SpringRoo为您提供了一种创建实体的简便方法。
通过执行数据库逆向工程师--schema theitroad-包~.jpa.data --disableVersionFields --activeRecord true --disableGeneratedIdentifiers` SpringRoo将扫描数据库并通过反转定义的表来创建实体。创建Primefaces Web层,SpringRoo提供的选项之一是使用JSF实现创建表示层。
执行Web jsf设置-实现ORACLE_MOJARRA-库PRIMEFACES-主题BLUESKY将为您的演示文稿层创建所有必需的文件,包括所需形式,例如:员工注册,电话注册,管理员工和管理电话。创建所有Web东西,包括实用程序Bean,必需的托管Bean,转换器,消息等。
执行web jsf all --package~.web`将帮助您创建所有这些东西。为避免标识符生成异常,请使用Eclipse CTRL + SHIFT + R如下打开Employee_Roo_Jpa_Entity.aj和Phone_Roo_Jpa_Entity.aj:
在员工标识符和电话标识符上添加@GeneratedValue(strategy = GenerationType.Auto)批注。
Employee_Roo_Jpa_Entity.aj
//WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO. //You Jan push code into the target .java compilation unit if you wish to edit any member(s). package com.theitroad.jpa.data; import com.theitroad.jpa.data.Employee; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; privileged aspect Employee_Roo_Jpa_Entity { declare @type: Employee: @Entity; declare @type: Employee: @Table(name = "employee"); @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "EMP_ID") private Integer Employee.empId; public Integer Employee.getEmpId() { return this.empId; } public void Employee.setEmpId(Integer id) { this.empId = id; } }
Phone_Roo_Jpa_Entity.aj
//WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO. //You Jan push code into the target .java compilation unit if you wish to edit any member(s). package com.theitroad.jpa.data; import com.theitroad.jpa.data.Phone; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; privileged aspect Phone_Roo_Jpa_Entity { declare @type: Phone: @Entity; declare @type: Phone: @Table(name = "phone"); @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "PH_ID") private Integer Phone.phId; public Integer Phone.getPhId() { return this.phId; } public void Phone.setPhId(Integer id) { this.phId = id; } }
执行mvn clean软件包,以生成SpringRoo AspectJ确实生成的一些Java文件,并生成下一个部署任务所需的WAR。
将生成的WAR文件复制到Apache Tomcat home/webapp文件夹中。
启动您的Apache Tomcat,然后输入如下所示的给定URL。