- 浏览: 100426 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
iswiitfk:
真是个好算法
分页算法中总页数的求法 -
chaodilei:
请问楼主从哪里抄过来的?
Eclipse下SSH集成(JPA) -
xiaowugegzh:
写的不错,QQ 418416015,聊聊技术啊,呵呵
计算出给定日期所在周的周一和周日 -
linhao315:
linhao315 写道在oracle 10g下注释没任何变动 ...
ibator改进,生成中文注释 -
linhao315:
在oracle 10g下注释没任何变动,而且1.2.1中去掉d ...
ibator改进,生成中文注释
SSH-JPA环境搭建
JPA环境的搭建:
1. 新建Web工程
项目名:shop
ContentPath:/
2. JPA环境的搭建
文件:hibernate-distribution-3.3.2.GA-dist.zip,
hibernate-entitymanager-3.4.0.GA.zip
mysql-connector-java-5.1.12.zip
所需Jar文件:
2.1 Hibernate的Jar文件:
hibernate3.jar,antlr-2.7.6.jar, commons-collections-3.1.jar,dom4j-1.6.1.jar,javassist-3.9.0.GA.jar,jta-1.1.jar,slf4j-api-1.5.8.jar,c3p0-0.9.1.jar,oscache-2.1.jar,
slf4j-log4j12.jar,log4j.jar
2.2 entitymanager的jar文件:
hibernate-entitymanager.jar,hibernate-annotations.jar,
hibernate-commons-annotations.jar,hibernate-core.jar,ejb3-persistence.jar
2.3 MySQL驱动包
mysql-connector-java-5.1.12-bin.jar
3. JPA配置文件
在类路径下新建文件夹META-INF,在该文件夹下新建persistence.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="shop" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=UTF-8" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="root" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.jdbc.fetch_size" value="25" />
<property name="hibernate.jdbc.batch_size" value="10" />
</properties>
</persistence-unit>
</persistence>
4. JPA测试
4.1 新建Entity类:
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class ProductType implements Serializable {
private Integer typeId;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getTypeId() {
return typeId;
}
public void setTypeId(Integer typeId) {
this.typeId = typeId;
}
}
4.2 新建Junit测试类:
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.junit.Test;
import cn.zlj.shop.bean.product.ProductType;
public class ProductTest {
@Test
public void testRun() {
EntityManagerFactory factory = Persistence
.createEntityManagerFactory("shop");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
em.persist(new ProductType());
em.getTransaction().commit();
em.close();
factory.close();
}
}
4.2 运行JUnit
4.2.1 Console:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Hibernate:
insert
into
ProductType
values
( )
4.2.2 MySQL数据库
mysql> use shop;
Database changed
mysql> show tables;
+----------------+
| Tables_in_shop |
+----------------+
| producttype |
+----------------+
1 row in set (0.00 sec)
mysql> select * from producttype;
+--------+
| typeId |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)
JPA环境搭建成功。
Sring2.5集成JPA:
1. 文件:spring-framework-2.5.6.SEC01-with-dependencies.zip
所需Jar文件:spring.jar
Aspect : aspectjrt.jar, aspectjweaver.jar
Cglib: cglib-nodep-2.1_3.jar
J2EE: common-annotations.jar
Dbcp: commons-dbcp.jar, commons-pool.jar,
commons-logging.jar
2. 项目源文件夹下新建文件:beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<aop:aspectj-autoproxy />
<context:component-scan base-package="cn.*" />
<context:property-placeholder location="classpath:jdbc.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!--连接池启动时的初始值 -->
<property name="initialSize" value="${initialSize}" />
<!--连接池的最大值 -->
<property name="maxActive" value="${maxActive}" />
<!--最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="${maxIdle}" />
<!--最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="${minIdle}" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="loadTimeWeaver">
<bean
class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>
3. 修改persistence.xml
将以下配置项删除:
hibernate.connection.driver_class,
hibernate.connection.username,
hibernate.connection.password,
hibernate.connection.url
<!--
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=UTF-8"/>
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="root" />
-->
项目源文件夹下新建文件:jdbc.properties
driverClassName= com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
initialSize=1
maxActive=100
maxIdle=8
minIdle=1
集成测试:
4. 业务的接口类ProductTypeService.java
public interface ProductTypeService {
public void save(ProductType type);
}
5. 业务的具体实现类ProductTypeServiceBean.java
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class ProductTypeServiceBean implements ProductTypeService {
@PersistenceContext
private EntityManager em;
public void save(ProductType type) {
em.persist(type);
}
}
6. JUnit测试类ProductTest.java
public class ProductTest {
@Test
public void testRun() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productTypeService = (ProductTypeService) ctx
.getBean("productTypeServiceBean");
productTypeService.save(new ProductType());
}
}
7. 运行JUnit测试类
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
Hibernate:
insert
into
ProductType
values
( )
8. 数据库
mysql> select * from producttype;
+--------+
| typeId |
+--------+
| 1 |
| 2 |
+--------+
2 rows in set (0.00 sec)
集成成功。
Sring2.5集成Struts1.3:
1. 所需Jar文件:
Struts1.3.10中
antlr-2.7.2.jar,bsf-2.3.0.jar,commons-beanutils-1.8.0.jar
commons-chain-1.2.jar,commons-digester-1.8.jar,commons-fileupload-1.1.1.jar,commons-io-1.1.jar,
commons-logging-1.0.4.jar,commons-validator-1.3.1.jar
jstl-1.0.2.jar,oro-2.0.8.jar,standard-1.0.6.jar,struts-core-1.3.10.jar
struts-el-1.3.10.jar,struts-extras-1.3.10.jar,struts-faces-1.3.10.jar
struts-mailreader-dao-1.3.10.jar,struts-scripting-1.3.10.jar
struts-taglib-1.3.10.jar,struts-tiles-1.3.10.jar
Spring2.5中:
spring-webmvc-struts.jar
2. 在Web.xml中配置启动Spring的Listener
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<!-- 实例化Spring容器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3. 在Web.xml中配置struts支持
<servlet>
<servlet-name>struts</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>struts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
4. 在WEB-INF/中添加struts的配置文件struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
</struts-config>
5. 测试
5.1 编写控制器类: ProductTypeAction.java
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.stereotype.Controller;
import cn.shop.bean.product.ProductType;
import cn.shop.service.product.ProductTypeService;
@Controller("/control/product/type/list")
public class ProductTypeAction extends Action {
@Resource(name = "productTypeServiceBean")
private ProductTypeService productTypeService;
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
productTypeService.save(new ProductType());
request.setAttribute("msg", "成功!!");
return mapping.findForward("success");
}
}
5.2 修改struts配置文件
<action-mappings>
<action path="/control/product/type/list">
<forward name="success" path="/WEB-INF/page/message.jsp" />
</action>
</action-mappings>
5.3 在/WEB-INF/page/下,新建jsp文件message.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>message</title>
</head>
<body>
消息:${msg}
</body>
</html>
5.4 启动Web服务器
启动成功后,通过浏览器访问control/product/type/list.do
url: http://localhost:8080/control/product/type/list.do
浏览器输出结果:
消息:成功!!
5.5 数据库
mysql> select * from producttype;
+--------+
| typeId |
+--------+
| 1 |
| 2 |
| 3 |
+--------+
3 rows in set (0.00 sec)
集成完成。
- Eclipse下SSH集成(JPA).doc.rar (20.3 KB)
- 下载次数: 138
- Shop工程.rar (8.9 KB)
- 下载次数: 93
发表评论
-
struts2中set一个常量
2012-03-31 10:46 1265struts2中的set标签,value是个变量的名字,相当于 ... -
JCaptcha 开源的验证码组件
2011-05-05 01:50 11848官方getting start指导:5 minutes app ... -
(转) Don't Use System.out.println! Use Log4j
2011-03-24 10:36 1226原文地址: Don't Use System.out.prin ... -
EL表达式
2010-07-25 00:45 950EL 全名为Expression L ... -
分页算法中总页数的求法
2010-06-02 22:56 4594... -
Spring2.5(全注解)+Ibatis2.3的集成
2010-04-18 22:48 5112Spring2.5(全注解)+Ibatis2.3的集成 网址 ... -
数字金额转换成中文金额
2010-04-14 18:35 1216public class Convertor{ ... -
求一年中星期一的日期
2010-04-14 18:05 1604import java.text.SimpleDateFo ...
相关推荐
SSH框架,全称为Struts2、Spring和Hibernate的集成,是Java Web开发中常用的一套技术栈。本环境基于SSH,并引入了JPA(Java Persistence API)作为数据持久层的解决方案,同时配合MySQL数据库,提供了一个完整的开发...
本篇文章将详细介绍如何使用MyEclipse集成开发环境在五分钟内快速搭建SSH(Spring、Struts2、Hibernate)结合JPA技术的应用环境,并自动生成DAO(Data Access Object)层与Model(数据模型)。通过这一过程,我们将...
在Eclipse环境下搭建SSH2项目,你需要按照以下步骤进行: 1. **安装与配置Eclipse**: 首先,确保你已经安装了Eclipse IDE for Java EE Developers版本,因为这个版本包含了Web项目开发所需的所有工具。 2. **...
在IT行业中,Eclipse是一款广泛使用的Java开发集成环境,而SSH(Struts2、Spring、Hibernate)是一个经典的Java Web开发框架组合。本教程将详细讲解如何利用Eclipse和SSH框架,通过全注解的方式实现一个简单的登录...
"Eclipse基于注解方式搭建SSH框架"项目展示了如何在Eclipse环境中利用注解驱动的方式集成Struts2、Spring和Hibernate,实现了一个包含注册功能的Web应用。项目中使用了JPA注解简化了数据库交互,并通过数据库脚本...
SSH2框架集成主要指的是在Java开发环境中整合Spring、Struts2和Hibernate这三个开源框架,以构建高效、可维护的企业级Web应用。SSH2是SSH(Spring、Struts、Hibernate)的升级版本,其中的2代表这三大框架的较新版本...
这些库文件对于构建一个基于SSH框架并集成JPA的Java Web项目是必不可少的,它们确保了所有组件能够正确交互并执行各自的职责。在实际开发中,还需要根据项目需求选择合适的版本,以及配置相应的XML配置文件(如...
这个"Eclipse搭建SSH(Struts2.5.10+Spring4.3.7+Hibernate5.2.9)Demo"是一个实践教程,帮助开发者了解如何在Eclipse集成开发环境中配置和使用这三个框架的最新版本。下面将详细讲解SSH框架的组成部分以及它们之间的...
Eclipse SSH框架,全称是Spring、Struts和Hibernate的集成框架,是Java Web开发中常用的三大框架结合体。在本文中,我们将深入探讨如何利用SSH框架中的注解来实现一个简洁而有效的用户注册功能。 首先,让我们了解...
在SSH集成中,Hibernate配置文件定义了数据源、实体类和映射文件,Spring可以通过其HibernateTemplate或JPA接口来管理Hibernate的Session,进行CRUD(创建、读取、更新、删除)操作。 在Eclipse环境中,开发SSH集成...
在Eclipse这样的集成开发环境中进行整合,需要正确配置和导入相应的jar包。以下是关于SSH整合所需jar包的详细解释: 1. **Spring框架**: - Spring的核心库提供了依赖注入(DI)和面向切面编程(AOP)功能。主要的...
环境:eclipse下ssh集成,数据库mysql 运行: 1、直接导入该SSH项目 2、applicationContext-common.xml对dataSource修改为你的url,username,password. 3、在com.ssh.test中右键junit test 运行向数据库中自动...
下面将详细介绍如何使用Eclipse集成开发环境和Maven构建工具来搭建SSH框架。 1. **Eclipse安装与配置** Eclipse是一款广泛使用的Java IDE,首先确保已经下载并安装了最新版本的Eclipse。在Eclipse中,我们需要安装...
总之,这个整合项目为学习者提供了一个基础的SSH(Struts2 + Spring + Hibernate)和JPA的集成示例,有助于理解这些框架如何协同工作,为更复杂的Java Web应用程序开发打下基础。通过逐步研究和实践,开发者可以深入...
这个名为"richard-ssh.rar"的压缩包显然包含了使用Maven构建的SSH集成项目,适合在Eclipse这样的集成开发环境中进行开发。下面将详细讲解SSH框架以及如何在Eclipse中搭建和使用它们。 **Struts2** 是一个基于MVC...
在SSH2_Ajax项目中,Spring管理着bean的生命周期,负责事务控制,以及与其它组件的集成。 **Hibernate** 是一个持久层框架,简化了Java对象与数据库之间的映射。Hibernate3.6版本增强了性能,提供了更灵活的查询API...
将这些jar包导入到Eclipse项目的lib文件夹下,并添加到项目的类路径中,可以使Eclipse识别并正确编译和运行SSH框架的代码。这样做可以避免因缺少依赖而引发的编译错误或运行时异常,确保项目顺利进行。 在实际开发...
4. 在Spring中集成JPA:通过JpaTemplate或EntityManagerFactoryBean,配置JPA数据访问层。 5. 将Struts2和Spring整合:使用Spring的Struts2插件,将Spring的bean注入到Struts2的Action中。 在实际开发中,为了使...