spring整合springmvc和hibernate

上篇文章使用maven搭建了web环境,这篇来记录下如何使用spring整合springmvc和hibernate,亦即spring+springmvc+hibernate框架整合。第一步:首先配置

大家好,又见面了,我是全栈君。

上篇文章使用maven搭建了web环境,这篇来记录下如何使用spring整合springmvc和hibernate,亦即spring+springmvc+hibernate框架整合。

 

第一步:首先配置spring

  1. 配置spring配置文件applicationContext.xmls
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
     4     xmlns:context="http://www.springframework.org/schema/context"
     5     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
     6     xmlns:mvc="http://www.springframework.org/schema/mvc"
     7     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     8        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     9        http://www.springframework.org/schema/context 
    10        http://www.springframework.org/schema/context/spring-context-3.0.xsd
    11        http://www.springframework.org/schema/tx 
    12        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    13        http://www.springframework.org/schema/aop
    14        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    15     <!-- 自动扫描 -->
    16     <context:component-scan base-package="com.mvn" />
    17     <!-- 配置自动aop -->
    18     <aop:aspectj-autoproxy />
    19 
    20 </beans>

    View Code

  2. 配置web.xml文件
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

    <!-- 配置spring context需要读取的配置文件 -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
        <!-- 配置spring listener 以便在web容器启动的时候能自动初始化spring -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>    

    View Code

 

第二步:配置spring mvc

  1. 配置spring mvc配置文件spring-web.xmls
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
     4     xmlns:context="http://www.springframework.org/schema/context"
     5     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
     6     xmlns:mvc="http://www.springframework.org/schema/mvc"
     7     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     8        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     9        http://www.springframework.org/schema/context 
    10        http://www.springframework.org/schema/context/spring-context-3.0.xsd
    11        http://www.springframework.org/schema/tx 
    12        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    13        http://www.springframework.org/schema/aop
    14        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    15        http://www.springframework.org/schema/mvc
    16        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    17     <!-- 自动扫描 com.mvn.controller的文件,初始化处理器-->
    18     <context:component-scan base-package="com.mvn.controller" />
    19     
    20     <!-- 配置试图解析器(渲染器) -->
    21     <bean id="viewResolver"
    22         class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    23         <property name="viewClass"
    24             value="org.springframework.web.servlet.view.JstlView" />
    25         <property name="prefix" value="WEB-INF/jsp/" />
    26         <property name="suffix" value=".jsp" />
    27     </bean>
    28 
    29 </beans>

    View Code

  2. 配置web.xml文件
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 <!-- 配置spring mvc 分发器 -->
     2     <servlet>
     3         <servlet-name>springmvc</servlet-name>
     4         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     5         <!-- 初始化spring mvc 配置文件的位置 -->
     6         <init-param>
     7             <param-name>contextConfigLocation</param-name>
     8             <param-value>classpath:spring-web.xml</param-value>
     9         </init-param>
    10         <!-- web容器启动的时候就加载springmvc -->
    11         <load-on-startup>1</load-on-startup>
    12     </servlet>
    13 
    14     <servlet-mapping>
    15         <servlet-name>springmvc</servlet-name>
    16         <url-pattern>*.do</url-pattern>
    17     </servlet-mapping>

    View Code

     

第三步:配置hibernate

  1. 将hibernate的相关配置放到spring配置文件applicationContext.xml里面
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

    <!-- 自动读取配置文件 --> <context:property-placeholder location="classpath:spring.properties" /> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- 配置sessionFactory--> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!-- hibernate自动扫描 实体类--> <property name="packagesToScan"> <list> <value>com.mvn.entity</value> </list> </property> <!-- hibernate属性 --> <property name="hibernateProperties"> <value> hibernate.hbm2ddl.auto=${jdbc.hibernate.hbm2ddl.auto} hibernate.dialect=${jdbc.hibernate.dialect} hibernate.show_sql=${jdbc.hibernate.show_sql} </value> </property> </bean> <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" />

    View Code

  2. 由于用到了需要读取propertie文件,因此要新增
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

    1 jdbc.driverClassName=com.mysql.jdbc.Driver 2 jdbc.url=jdbc:mysql://localhost:3306/mvn 3 jdbc.username=root 4 jdbc.password=root 5 6 jdbc.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect 7 jdbc.hibernate.show_sql=true 8 jdbc.hibernate.hbm2ddl.auto=update

    View Code

     

第四步:编写对应的java和jsp代码

  1. 创建entity类
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 package com.mvn.entity;  2  3 import javax.persistence.Entity;  4 import javax.persistence.GeneratedValue;  5 import javax.persistence.Id;  6 import javax.persistence.Table;  7  8 @Entity  9 @Table(name="t_user") 10 public class User { 11 12 private Integer id; 13 private String name; 14 private String password; 15 16  @Id 17  @GeneratedValue 18 public Integer getId() { 19 return id; 20  } 21 public void setId(Integer id) { 22 this.id = id; 23  } 24 public String getName() { 25 return name; 26  } 27 public void setName(String name) { 28 this.name = name; 29  } 30 public String getPassword() { 31 return password; 32  } 33 public void setPassword(String password) { 34 this.password = password; 35  } 36 37 }

    View Code

  2. 创建dao类
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 package com.mvn.dao;  2  3 import javax.annotation.Resource;  4  5 import org.hibernate.SessionFactory;  6 import org.hibernate.classic.Session;  7 import org.springframework.stereotype.Repository;  8  9 import com.mvn.entity.User; 10 11 @Repository 12 public class UserDao { 13 14  @Resource 15  SessionFactory sessionFactory; 16 17 public void save(User user){ 18 Session session = sessionFactory.openSession(); 19  session.save(user); 20 21  } 22 }

    View Code

  3. 创建service类
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 package com.mvn.service;  2  3 import javax.annotation.Resource;  4  5 import org.springframework.stereotype.Service;  6 import org.springframework.transaction.annotation.Transactional;  7  8 import com.mvn.dao.UserDao;  9 import com.mvn.entity.User; 10 11 @Service 12 public class UserService { 13  @Resource 14  UserDao userDao; 15 16  @Transactional 17 public void save(User user){ 18  userDao.save(user); 19  } 20 21 }

    View Code

  4. 创建控制器
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 package com.mvn.controller;  2  3 import javax.annotation.Resource;  4  5 import org.springframework.stereotype.Controller;  6 import org.springframework.web.bind.annotation.RequestMapping;  7  8 import com.mvn.entity.User;  9 import com.mvn.service.UserService; 10 11 @Controller 12 public class SaveUser { 13 14  @Resource 15  UserService userService; 16 17 @RequestMapping(value="/saveUser") 18 public String saveUser(User user){ 19  userService.save(user); 20 return "saveSucess"; 21  } 22 }

    View Code

  5. 创建jsp文件:WEB-INF\jsp\saveSucess.jsp
    spring整合springmvc和hibernate
    spring整合springmvc和hibernate

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"  2  pageEncoding="UTF-8"%>  3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  4 <html>  5 <head>  6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  7 <title>Insert title here</title>  8 </head>  9 <body> 10 Hello 11 恭喜! 12 整合成功 13 </body> 14 </html>

    View Code

  至此代码写完了,完整的目录结构为:

  spring整合springmvc和hibernate

第五步:进行测试

  1. 创建数据库spring整合springmvc和hibernate
  2. 启动tomcat,由于我们配置了hibernate属性hibernate.hbm2ddl.auto=update,因此会在tomcat启动完成后自动生成表t_user
  3. 通过页面访问

    spring整合springmvc和hibernate

   4.数据库生成数据

     spring整合springmvc和hibernate

至此,整合工作完成。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120918.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • PSPNet介绍-语义分割

    PSPNet-PyramidSceneParsingNetwork核心模块是金字塔池化模块(pyramidpoolingmodule),它能够聚合不同区域的上下文信息,从而提高获取全局信息的能力。实验表明这样的先验表示(即指代PSP这个结构)是有效的,在多个数据集上展现了优良的效果。1.pyramidpoolingmodule该模块融合了4种不同金字塔尺度的特征,第一行…

  • 解决方案-vector初始化后存放Mat,出现Mat矩阵数据同变问题

    解决方案-vector初始化后存放Mat,出现Mat矩阵数据同变问题提供解决方案-vector初始化后存放Mat,出现Mat矩阵数据同变问题

  • notepad中文显示乱码_csv文件打开乱码

    notepad中文显示乱码_csv文件打开乱码NotePad打开文件出现中文汉字乱码解决办法现象:出现中文汉字乱码:解决办法:先别着急用notepad修改编码1.用windows系统自带记事本打开,2,选择文件另存为3.如果看到:编码是UTF-84.修改编码改成ANSI再次用notepad打开一般就正常了。修改编码改成ANSI…

    2022年10月14日
  • 矩阵向量中两两间欧式距离计算[通俗易懂]

    矩阵向量中两两间欧式距离计算[通俗易懂]目标:希望通过的矩阵运算就能得出矩阵向量中两两之间的欧式距离欧氏距离公式:一般而言,我们常见的欧式距离计算公式如下:a,b对应的是两组不同的向量dist(a,b)=(a1−b1)2+(a2−b2)2+⋅⋅⋅(an−bn)2dist(a,b)=\sqrt{(a_1-b_1)^{2}+(a_2-b_2)^{2}+···(a_n-b_n)^{2}}dist(a,b)=(a1​−b1​)2…

  • jsp传后台乱码 encodeURI

    jsp传后台乱码 encodeURI

  • seekg()/seekp()与tellg()/tellp()的用法详解

    seekg()/seekp()与tellg()/tellp()的用法详解对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是:ios::beg:表示输入流的开始位置ios::cur:表示输入流的当前位置io

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号