文档章节

2014-03-20 Spring的学习(5)------ORM工具进行数据访问+集成Web框架

查封炉台
 查封炉台
发布于 2014/03/20 10:43
字数 941
阅读 132
收藏 5
点赞 0
评论 3

1.开发环境配置      

     1.1 Java运行环境:JDK1.6

    1.2 J2EE:JAVAEE_5 Libraries

    1.3 Web APP Libraries 

          a.Hibernate:requriedJar目录下所有架包

             antlr-2.7.6.jar

                    asm-attrs.jar

                    asm.jar

                    cglib-2.1.3.jar

                    commons-collections-2.1.1.jar

                    commons-logging-1.0.4.jar

                    dom4j-1.6.1.jar

                    ehcache-1.2.3.jar

                    hibernate3.jar

                    jta.jar

        b.Spring:          

                     aspectjrt.jar

              aspectjweaver.jar

              cglib-nodep-2.1_3.jar

              common-annotations.jar

               commons-dbcp.jar

               commons-pool.jar

              spring-webmvc-struts.jar

              spring.jar

        c:Strut1.3:lib目录下将 JSTL和 Stander版本为1.1,其他导入

        d:MySQL数据库连接驱动架包

        开发环境目录如图:

    

2.Spring和Hibernate的整合

User.java
package cn.itcast.domain;
public class User {
	private Integer id;
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
}

     

User.hbm.xml

   

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcast.domain">
	<class name="User" table="tb_user2" lazy="true">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name" column="name" not-null="true" length="255"></property>
		
	</class>
</hibernate-mapping>

  

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:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       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/aop 
       http://www.springframework.org/schema/aop/spring-aop-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/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    <context:component-scan base-package="cn.itcast.dao"/>
    <context:property-placeholder location="classpath:jdbc.properties"/>
	<bean id="dataSource" destroy-method="close"
			class="org.apache.commons.dbcp.BasicDataSource">
			<property name="driverClassName" value="${jdbc.driverClassName}" />
			<property name="url" value="${jdbc.url}" />
			<property name="username" value="${jdbc.username}" />
			<property name="password" value="${jdbc.password}" />
		
			<property name="initialSize" value="${jdbc.initialSize}" />
			<property name="maxActive" value="${jdbc.maxActive}" />
		
			<property name="maxIdle" value="${jdbc.maxIdle}" />
		
			<property name="minIdle" value="${jdbc.minIdle}" />
    </bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mappingResources">
			<list>
				<value>cn/itcast/domain/User.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<value>
				hibernate.dialect=org.hibernate.dialect.MySQLDialect
				hibernate.show_sql=true
				hibernate.format_sql=true
				hibernate.hbm2ddl.auto=update
			</value>
		</property>
	</bean>
	<bean id="txManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<context:annotation-config></context:annotation-config>
	<tx:annotation-driven transaction-manager="txManager"/>
</beans>

    

UserDaoImpl.java
package cn.itcast.dao.impl;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import cn.itcast.dao.UserDao;
import cn.itcast.domain.User;

@Transactional @Repository
public class UserDaoImpl implements UserDao {
	@Resource 
	private SessionFactory sessionFactory;
	/* (non-Javadoc)
	 * @see cn.itcast.dao.impl.UserDao#add(cn.itcast.domain.User)
	 */
	@Override
	public void add(User user){
		Session session = sessionFactory.getCurrentSession();
		session.persist(user);
	}
	/* (non-Javadoc)
	 * @see cn.itcast.dao.impl.UserDao#findById(java.lang.Integer)
	 */
	@Override
	public User findById(Integer id){
		return (User) sessionFactory.getCurrentSession().get(User.class, id);		
    }
	/* (non-Javadoc)
	 * @see cn.itcast.dao.impl.UserDao#update(cn.itcast.domain.User)
	 */
	@Override
	public void update(User user){
		sessionFactory.getCurrentSession().merge(user);
	}
	/* (non-Javadoc)
	 * @see cn.itcast.dao.impl.UserDao#delete(cn.itcast.domain.User)
	 */
	@Override
	public void delete(Integer id){
		sessionFactory.getCurrentSession().delete(
				sessionFactory.getCurrentSession().load(User.class, id));
	}
	/* (non-Javadoc)
	 * @see cn.itcast.dao.impl.UserDao#findAll()
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<User> findAll(){
		return sessionFactory.getCurrentSession().createQuery("FROM User").list();
	}
}

 

整合成功:测试正确

3.Spring和Struts1.3的整合

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:beans.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>ActionServlet</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>
		<load-on-startup>2</load-on-startup>
    </servlet>
	<servlet-mapping>
	   <servlet-name>ActionServlet</servlet-name>
	   <url-pattern>*.do</url-pattern>
	</servlet-mapping>
</web-app>
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>
    <action-mappings>
        <action path="/user/list" 
                type="cn.itcast.web.controller.UserAction"
                validate="false">
                <forward name="list" path="/WEB-INF/page/listUser.jsp"/>
        </action>
    </action-mappings>
	<controller>
		<set-property property="processorClass"
			value="org.springframework.web.struts.DelegatingRequestProcessor" />
	</controller>
</struts-config>
beans.xml
添加配置
<bean name="/user/list" class="cn.itcast.web.controller.UserAction"></bean>
package cn.itcast.web.controller;

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 cn.itcast.dao.UserDao;
public class UserAction extends Action {

	@Resource private UserDao dao;
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		request.setAttribute("users", dao.findAll());
		return mapping.findForward("list");
	}

}
测试结果:表示整合完毕!!

4.Spring和其他Web框架的整合

      我们可以参考到Spring开发手册,特别的详细。

结束.....

PS:在试验过程中,将项目用Tomcat启动时,发现错误.

An internal error occurred during: "Launching PoiSearch on Tomcat  6.x". java.lang.NullPointerExcept

如果出现了上述的错误按照如下的3个步骤解决:
1、首先关闭MyEclipse工作空间。
2、然后删除工作空间下的
“/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.ast.deploy.core.prefs”
这个文件。在这个文件中存储了一些部署项目的信息。删了这个部署的项目的信息就没有错误了。
3、重启启动MyEclipse即可解决了。

........



© 著作权归作者所有

共有 人打赏支持
查封炉台
粉丝 49
博文 56
码字总数 138491
作品 0
景德镇
程序员
加载中

评论(3)

c
chunfuermosi
都是传智播客里面的视频出来的 可能在视频源码里面可以找到
查封炉台
查封炉台

引用来自“bogang2012”的评论

可否提供下载? 谢谢。
这是去年的博客,源代码已经找不到。
两广总督bogang
两广总督bogang
可否提供下载? 谢谢。
Spring实战读书笔记(1)

Spring的根本使命是? 简化Java开发 为了降低Java开发的复杂性,Spring采取了哪4种关键策略? 1、基于POJO的轻量级和最小侵入性编程 2、通过依赖注入和面向接口实现松耦合 3、基于切面和惯例...

祥林会跟你远走高飞
2014/12/30
0
0
基于Struts+Spring+Hibernate的使用和部署

就现在WEB开发而言,J2EE企业级开发技术比较成熟,开发模式模式也比较繁多,较流行开发模式MVC更是普遍,而基于MVC模式开发的框架也是种类繁多,现在使用最多的可能就是SSH这三种框架,所以展...

chenruibing
2015/08/18
0
0
【第1章 Spring概述与结构】1.2 Spring模块与结构

上一节:【第1章 Spring概述与结构】1.1 Spring起源与概述 基于Java Beans的配置管理,采用IOC的原理,特别是对依赖注入技术的使用。这些都用来减少各组件间对实施细则的相互依赖性。 一个核...

陶邦仁
2015/05/21
0
0
2014-03-09 Spring的学习(0)-----Spring目录文件组织

Spring压缩包目录说明 目录名 相关介绍 aspectj 在Spring框架下使用aspectj的源代码和测试程序文, 是java最早的提供AOP的应用框架 dist Spring 的发布包,关于发布包下面会详细进行说明。 do...

查封炉台
2014/03/09
0
0
【spring系列】spring框架结构

Spring 框架的 7 个模块 Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图所示。 图 1. Spring ...

磊神Ray
2011/10/11
0
0
综合技术 --spring理解

spring是一个轻量级的java开发框架,该框架的主要优势就是分层架构,分层架构允许使用者选择使用哪一个组件,该框架同时为J2EE应用程序开发提供集成框架,spring使用最基本的javaBean来完成以...

求是科技
2015/04/11
0
0
spring 3.2 各jar包的简单介绍

1.spring-aop:面向切面AOP编程中需要使用。声明式事物也用到此包。 2.spring-aspects:提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。 3.spring-bea...

40岁的青春
2015/08/11
0
0
【第一章】 Spring概述 ——跟我学Spring3

1.1.1 Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。...

君辰
2015/07/23
0
0
Spring(二):配置和简单使用

1、下载地址(目前使用的是4.2.0) 下面都可以 http://repo.springsource.org/libs-release-local/org/springframework/spring http://repo.spring.io/simple/libs-release-local/org/sprin......

_Roger_
2015/08/16
0
0
Java Web(4)Spring 集成,与Hibernate

在数据库持久层的hibernate弄好后,接下来使用spring 来托管Hibernate的SessionFactory。 为什么要这么做呢?对于我来说也是一个很模糊的概念。 前面已经使用单例模式来加载Hibernate,确保S...

Jagery
2015/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

打印斐波那契数

package com.jerry.ch04;public class PrintFibonacci {public static void main(String[] args) {for (int i=0; i<10; i++) {System.out.print(fib(i) + " ");}......

JerryNing
13分钟前
0
0
shell编程

一、shell脚本介绍

人在艹木中
13分钟前
0
0
istio 0.8 遥测 案例

==============遥测===================================== 演示如何从网格中收集遥测信息。 分布式跟踪。如何配置代理以向Zipkin或Jaeger发送跟踪请求 收集度量标准和日志。此任务说明如何配...

xiaomin0322
15分钟前
0
0
ND4J求多元线性回归以及GPU和CPU计算性能对比

上一篇博客《梯度下降法求多元线性回归及Java实现》简单了介绍了梯度下降法,并用Java实现了一个梯度下降法求回归的例子。本篇博客,尝试用dl4j的张量运算库nd4j来实现梯度下降法求多元线性回...

冷血狂魔
16分钟前
0
0
springboot常用注解

@SpringBootApplication: 包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。 @Service: 用于标注业务层组件。 @RestController: 用于标注控制层组件(如strut...

GoldenVein
22分钟前
1
0
如何进行大数据的入门级学习?

不知道你是计算机专业应届生还是已经从业者。总之,有java基础的学生学习大数据会轻松很多,零基础的小白都需要从java和linux学起。 如果你是一个学习能力特别强,而且自律性也很强的人的话可...

董黎明
36分钟前
0
0
使用Parcelable传递复杂参数

最近做AIDL传递对象,对象必须实现Parcelable的方法才可以被传递。 @Override    public int describeContents() {//这个 默认返回0就行了。        return 0;    }    ...

火云
37分钟前
0
0
十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发...

HJCui
47分钟前
0
0
word 使用mathtype 编写 数学公式

下载安装,这个链接命名。。。。 http://www.mathtype.cn/xiazai.html 安装之后会多出一个选项 使用内联方式插入图表 编写公式的界面 设置支持latex 语法 输入公式回车就可以看到结果...

阿豪boy
今天
0
0
Promise

定义 Promise是异步编程的一种解决方案,所谓Promise就是一个容器,里面保存着某个未来才会结束的事件(通常是一个一步操作)的结果。 特点: 2.1 对象的状态不受外界影响,三种状态pending...

litCabbage
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部