SpringMVC与Spring、Hibernate整合

本文采用正向工程
1.搭建工程
        工程名称:mvcsh
2.添加支持的jar包
        1).spring-3.2.0.jar

注:struts相关的jar不需要

\libs\*.jar

com.springsource.org.aopalliance-1.0.0.jar
            com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
            commons-logging.jar
        2).hibernate-distribution-3.6.10.Final.zip

\hibernate3.jar

lib\required\*.jar
            backport-util-concurrent.jar
            ehcache-1.5.0.jar

c3p0-0.9.1.jar

hibernate-jpa-2.0-api-1.0.1.Final.jar
            log4j.jar
            slf4j-log4j12-1.6.1.jar

mysql-connector-java-5.1.10-bin.jar

3.添加及修改相关配置文件
        1).修改web.xml文件
            a.添加spring监听与上下文
                <!-- spring 监听器配置  -->
                <listener>
                    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
                </listener>
                <context-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>classpath:applicationContext.xml</param-value>
                </context-param>
            b.添加springmvc的配置信息
                <!-- springmvc的配置 -->
                <servlet>
                    <servlet-name>springmvc</servlet-name>
                    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                    <init-param>
                        <param-name>contextConfigLocation</param-name>
                        <param-value>classpath:springmvc-servlet.xml</param-value>
                    </init-param>
                </servlet>
                <servlet-mapping>
                    <servlet-name>springmvc</servlet-name>
                    <url-pattern>/</url-pattern>
                </servlet-mapping>
        2).添加spring核心配置文件
            applicationContext.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/tx http://www.springframework.org/schema/tx/spring-tx.xsd
                   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
            </beans>
        3).添加springmvc核心配置文件
            springmvc-servlet.xml
            <?xml version="1.0" encoding="UTF-8"?>
            <beans xmlns="http://www.springframework.org/schema/beans"  
                  xmlns:mvc="http://www.springframework.org/schema/mvc"  
                  xmlns:context="http://www.springframework.org/schema/context"  
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
                  xsi:schemaLocation="http://www.springframework.org/schema/beans  
                       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
                       http://www.springframework.org/schema/context   
                       http://www.springframework.org/schema/context/spring-context-3.0.xsd  
                        http://www.springframework.org/schema/mvc  
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
                    
            </beans>
        4).在springmvc-servlet.xml中添加配置信息
            a.扫描注解信息
                <!-- 1.自动扫描注解 -->
                <context:component-scan base-package="cn.jbit.mvcwithspring.web.annotation"></context:component-scan>
                <mvc:annotation-driven/>
            b.配置视图解析器
                <!-- 2.视图解析器 -->
                <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                        <!-- 前缀 -->
                    <property name="prefix" value="/"></property>
                    <!-- 后缀 -->
                    <property name="suffix" value=".jsp"></property>
                </bean>
        5).添加属性文件jdbc.properties
            jdbc.driver = com.mysql.jdbc.Driver
            jdbc.url = jdbc:mysql://localhost:3306/test
            jdbc.user = root
            jdbc.password =root
        6).配置spring的配置,在applicationContext.xml文件中添加如下配置
            <!-- 1.加载属性文件 -->
            <context:property-placeholder location="classpath:jdbc.properties"/>
            
            <!-- 2.自动描述注解 -->
            <context:annotation-config/>
            <context:component-scan base-package="cn.jbit"></context:component-scan>
            
            <!-- 3.配置c3p0数据库连接池 -->
            <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <property name="driverClass" value="${jdbc.driver}"></property>
                <property name="jdbcUrl" value="${jdbc.url}"></property>
                <property name="user" value="${jdbc.user}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </bean>
            
            <!-- 4.配置SessionFactory -->
            <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
                <!-- 加载连接池 -->
                <property name="dataSource" ref="dataSource"></property>
                <!-- hibernate属性 -->
                <property name="hibernateProperties">
                    <props>
                        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                        <prop key="hibernate.show_sql">true</prop>
                        <prop key="hibernate.format_sql">true</prop>
                        <prop key="hibernate.current_session_context_class">thread</prop>
                        <prop key="hibernate.hbm2ddl.auto">update</prop>
                    </props>
                </property>
                <!-- 扫描注解po类所在的包 -->
                <property name="packagesToScan">
                    <list>
                        <value>cn.jbit.mvcwithspring.domain</value>
                    </list>
                </property>
            </bean>
            
            <!-- 5.配置Hibernater模板 -->
            <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
                <property name="sessionFactory" ref="sessionFactory"></property>
            </bean>
            
            <!-- 6.声明事务管理器 -->
            <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                <property name="sessionFactory" ref="sessionFactory"></property>
            </bean>
            
            <!-- 7.事务驱动 -->
            <tx:annotation-driven transaction-manager="transactionManager"/>

4.实体类
        /mvcsh/src/cn/jbit/mvcwithspring/domain/Student.java
        @Entity
        @Table(name="m_student")
        public class Student implements Serializable {
            
            @Id
            @GeneratedValue(strategy=GenerationType.AUTO)
            private Integer studentNo;
            private String studentName;
            private Integer age;
            //省略get和set方法
        }
5.持久层
        a.接口
            public interface IStudentDao {
                //添加
                public void insert(Student student);
                //查询
                public List<Student> select();
            }
        b.实现类
            @Repository
            public class StudentDaoImpl implements IStudentDao {

@Autowired
                private HibernateTemplate hibernateTemplate;
                public void insert(Student student) {
                    this.hibernateTemplate.save(student);
                }
                public List<Student> select() {
                    return this.hibernateTemplate.find("FROM Student");
                }
            }
6.业务逻辑层
        a.接口
            public interface IStudentService {
                public void save(Student student);
                public List<Student> findAll();
            }
        b.实现类
            @Service
            @Transactional
            public class StudentServiceImpl implements IStudentService {
                @Autowired
                private IStudentDao studentDao;
                public void save(Student student) {
                    this.studentDao.insert(student);
                }
                public List<Student> findAll() {
                    return this.studentDao.select();
                }
            }

7.控制器
        @Controller
        @RequestMapping("/student")
        public class StudentController {
            @Autowired
            private IStudentService studentService;
            @RequestMapping("/save")
            public String save(Student student){
                this.studentService.save(student);
                return "/savesuccess";
            }
            @RequestMapping("/list")
            public String list(HttpServletRequest request){
                List<Student> students = this.studentService.findAll();
                request.setAttribute("students", students);
                return "/list";
            }
        }

8.显示层
    1).save.jsp
        使用表单提交数据
    2).list.jsp
        <table>
            <tr>
                <td>学号</td>
                <td>姓名</td>
                <td>年龄</td>
            </tr>
            <c:forEach items="${students}" var="s" varStatus="vs">
                <tr>
                    <td>${s.studentNo }</td>
                    <td>${s.studentName }</td>
                    <td>${s.age }</td>
                </tr>
            </c:forEach>
        </table>

3).savesuccess.jsp

添加成功的提示信息

SpringMVC与Spring、Hibernate整合

时间: 2024-10-10 06:08:56

SpringMVC与Spring、Hibernate整合的相关文章

spring+hibernate整合:报错org.hibernate.HibernateException: No Session found for current thread

spring+hibernate整合:报错信息如下 org.hibernate.HibernateException: No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106) at org.hibernate.internal.SessionFactoryImpl.getC

Spring+Hibernate整合配置 --- 比较完整的spring、hibernate 配置

Spring+Hibernate整合配置 分类: J2EE2010-11-25 17:21 16667人阅读 评论(1) 收藏 举报 springhibernateclassactionservletmysql 在公司一直没有什么机会直接折腾SSH“原生态”的SSH当今比较流行的轻量级的框架,用着公司的框架也是郁闷异常,今天没事整整原来用过的一个项目的配置,发现就算是自己曾经用过的东西,如果较长时间不返过去重新学习,许多你半熟不熟的知识就是异常陌生.下面贴上我的一些配置,暂且权当备份吧. web

Spring+Hibernate整合

因为整合spring和hibernate所以,需要用到spring里面复写Hibernate的类以有DI和IOC特性 db.sql hibernate_basic数据库 表 person 字段 pid pname psex Person.java 1 package cn.edu.spring_hibernate; 2 3 public class Person { 4 private Long pid; 5 private String pname; 6 private String psex

spring mvc+spring + hibernate 整合(三)

前面我们已整合了spring + hibernate,并建立了个用户的增加的实例,通过了单元测试,能正常增加数据.今天我们就来集成spring mvc以便建立web界面来输入数据并提交,后台再保存入库.关于spring mvc的一些基础理论及使用方法,网上有很多的资料,我这里就不多说了,下面我们进入实战.     因为我们项目会用到很多的图片.js代码.css样式文件等.我们在webapp目录下建立个static目录,统一对这些文件进行管理 一:web.xml配置 它提供了我们应用程序的配置设定

Struts+Spring+Hibernate整合入门详解

标签: strutshibernatespringbeanactionimport 2007-08-12 16:05 36280人阅读 评论(13) 收藏 举报 分类: STRUTS&SPRING&HIBERNATE(12) Java 5.0 Struts 2.0.9 spring 2.0.6 hibernate 3.2.4 作者:  Liu Liu 转载请注明出处 基本概念和典型实用例子. 一.基本概念       Struts:作为基于 MVC 模式的 Web 应用最经典框架,两个项目

spring mvc+spring + hibernate 整合(二)

在上篇文章中,我建立了工程并配置了spring + hibernate.今天我们检验下上篇文章的成果,如何检查呢?那就是进行单元测试.本篇文章就让大家和我一起来就前面的建的工程进行单元测试.     本项目使用Junit进行单元测试,需要引用单元测试的包,在的工程建立中已有了如何引入单元测试的依赖,这里就不多说了.要进行单元单元测试,我们就按下面的步骤进行 一:建立实体 本例是刚弄开始学习,所以表不弄得太复杂,我们就以用户登录为例:建立一个用户对象,拥有用户名和密码两个属性,密码开始也使用名文的

Strut2 spring hibernate 整合

一.创建web项目工程 wzz 点击finish 2.添加spring Jar包   AOP,Core,Persistence Core ,web jar 点击next 点击Finish 3.配置Database Driver 我使用的是JTDS jar包,jtds在配置url地址时与使用sql Seriver的url地址有点不太一样,然后直接点击Finish即可 4.添加hibernate 配置 点击next 选择使用Spring的applicationContext.xml,点击next 选

SpringMVC+Spring+hibernate整合及分页

1. 新建web project 2. 引入jar, 3. 创建包com.tgb.web.controller, 下面创建包(dao,entity,service, config,spring,hibernate) config-> spring-core.xml,spring-servlet.xml,spring-hibernate.xml 1) config下 springmvc配置文件 spring-servlet.xml <?xml version="1.0" en

springmvc spring hibernate整合

web.xml 开启spring <listener >org..ContextLoaderListener</> <context-param>name,value(application-dao application-tx) </> 开启springmvc <servlet > name,class(DispatcherServlet) <init-param>name,value(springmvc.xml) </>

java框架篇---spring hibernate整合

在会使用hibernate 和spring框架后 两个框架的整合就变的相当容易了, 为什么要整合Hibernate?1.使用Spring的IOC功能管理SessionFactory对象 LocalSessionFactoryBean2.使用Spring管理Session对象  HibernateTemplate3.使用Spring的功能实现声明式的事务管理 第一步:搭建hibernate环境(包括引入hibernate的jar,包配置数据源,建立类和表的映射),为什么这么做.我觉得hiberna