Primefaces,Hibernate和SpringRoo集成

194 篇文章 3 订阅
19 篇文章 0 订阅

 

Primefaces,Hibernate和SpringRoo集成

 

SpringRoo是一个开源软件工具,它使用约定优于配置的概念,以便以驱动的命令行方式生成基于Java的企业软件应用程序。我们已经介绍了一套教程,可以帮助您创建企业应用程序。PrimefacesSpring FrameworkHibernate,EclipseLink和不同类型的数据存储有选择地组合在一起,以帮助您创建企业应用程序。

本教程不同,即您不会开发以前开发过的任何图层。所有内容都将分配给SpringRoo,您将学习所需的集成和命令,以帮助您安装和运行第一个应用程序。

 

目录[ 隐藏 ]

最终项目结构

SpringRoo  - 最终项目结构

必备工具

  • SpringRoo 1.2.5
  • JDK 1.6+
  • Apache Tomcat 7
  • Maven 2+
  • Eclipse Kepler 4.3
  • MySQL 5.x

Eclipse Spring Roo集成

要将Eclipse IDE与SpringRoo软件集成,您必须仔细遵循以下步骤:

  • SpringRoo软件下载到您的本地目录并解压缩。为了澄清目的,我们将其解压缩到  D:\ SpringRoo \ spring-roo-1.2.5.RELEASE中
  • 将SpringRoo插件安装到Eclipse IDE中。这可以通过进入“ 帮助 - 安装新软件”  并http://dist.springsource.com/release/TOOLS/update/e4.3/ 在“使用 地址输入”中键入此内容来完成。

SpringRoo  - 安装新软件 - 获取所有插件

  • 检查Core / Spring IDE 和  Extensions / Spring IDE

SpringRoo  - 安装新软件 - 安装所需的SpringRoo软件

 

  •   单击“下一步”完成并等待安装过程完成。

SpringRoo  - 安装新软件

  • 确保重新启动Eclipse IDE。如果您已成功安装Spring Roo,那么您将获得如下所示的欢迎屏幕。
  • 从Project Explorer中,创建一个新项目并选择Spring Roo Project 

创建新的Spring Roo项目

  • 单击“下一步”,然后在项目名称中键入  Primefaces-SpringRoo-Hibernate-Sample 。命名您的  顶级包名称 ,并确保您的  项目类型 是标准的。

创建新的Spring Roo项目 - 填写所需信息

  • 单击Configure Roo Installations 并添加下载的Spring Roo库。

添加SpringRoo库配置Spring RooSpring Roo配置

 

  • 确保选择  WAR 包装方式。单击下一步,完成。SpringRoo将使用您提供的信息开始构建您的项目。

Spring Roo正在运行

  • 一旦SpringRoo Project创建,您必须注意到SpringRoo Shell命令 - 插件Shell - 已打开。如果您在启动和准备就绪时遇到一些障碍,只需重新启动eclipse并再次通过单击Open Roo Shell来激活SpringRoo shell  。
  • 现在,您已准备好开始构建项目。

数据库视图

SpringRoo推动了一种已知的范例,可让您的JPA实体一目了然。您的数据库表可以反向设计,以消除执行其他命令的需要。那么让我们看看我们真正想要实现的业务表是什么。

一般来说,我们有两个表; 以一对多关联类型关联的员工和电话。Phone Table包含一个外键,在Employee Table中引用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执行多个命令。按照明确的步骤创建想要的应用程序。

  • 安装程序通过执行使用持久性框架 persistence setup --database MYSQL --provider HIBERNATE --hostName localhost --userName root --password root --databaseName journaldev --persistenceUnit hibernate.jpa
  • 安装MySQL驱动程序,这将有助于您的SpringRoo软件在逆向工程开始过程中加载所需的驱动程序。我们在D:\ mysql-connector-java-5.1.18-bin.jar上有一个MySQL驱动程序  。执行  osgi install --url file:\\\D:\mysql-connector-java-5.1.18-bin.jar将是公平的。如果您错过了执行此指令,那么在连接MySQL数据库进行逆向工程阶段时,您将获得  “com.mysql.jdbc.Driver”消息不可用的JDBC驱动程序
  • 创建JPA实体,SpringRoo为您提供了一种创建实体的简便方法。通过执行  database reverse engineer --schema journaldev  --package ~.jpa.data --disableVersionFields --activeRecord true --disableGeneratedIdentifiersSpringRoo将扫描您的数据库并通过在那里反转已定义的表来创建实体。
  • 创建Primefaces Web层,SpringRoo提供的选项之一是使用JSF实现创建表示层。执行  web jsf setup --implementation ORACLE_MOJARRA --library PRIMEFACES --theme BLUESKY将为您的表示层创建所有必需的文件,包括所需的表单,如:员工注册,电话注册,管理员工和管理电话。
  • 创建所有Web内容,包括实用程序bean,所需的托管bean,转换器,消息等。执行  web jsf all --package ~.web将帮助您创建所有这些东西。

创建托管豆 - 转换器 - 实用程序和所有Web内容

  • 要避免标识符生成异常,使用Eclipse CTRL + SHIFT + R 打开  Employee_Roo_Jpa_Entity.aj和  Phone_Roo_Jpa_Entity.aj,如下所示:

编辑实体 - 使用Eclipse

  • @GeneratedValue(strategy = GenerationType.Auto)注释添加  到Employee的标识符和Phone的标识符上。

Employee_Roo_Jpa_Entity.aj


// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
// You may push code into the target .java compilation unit if you wish to edit any member(s).

package com.journaldev.jpa.data;

import com.journaldev.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 may push code into the target .java compilation unit if you wish to edit any member(s).

package com.journaldev.jpa.data;

import com.journaldev.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所需的一些Java文件,AspectJ确实生成并为下一个即将发布的部署任务生成所需的WAR。
  • 将生成的WAR文件复制到Apache Tomcat home / webapp文件夹中。
  • 启动Apache Tomcat并键入下面显示的给定URL。

主页

演示

现在,您已经启动了Apache Tomcat,并且您将继续使用SpringRoo应用程序的主页。正如您所注意到的,自动开发了四种形式; 创建员工,创建电话,列出所有员工并列出所有电话。在开始创建新员工和手机之前,我们先来看一看。

数据库记录 - 任何操作之前

插入新员工

所有电话列表

坚持记录

现在,让我们看一下持久存储到MySQL数据库中的记录。

最终记录

摘要

SpringRoo用于快速应用程序开发(RAD),它常用于开发企业应用程序,其中Hibernate是持久层,Primefaces是表示层。通过下面的评论为我们做贡献,并找到下载的源代码。

下载Primefaces SpringRoo Hibernate项目

 

原创翻译,译文来源:https://www.journaldev.com/4260/primefaces-hibernate-and-springroo-integration

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值