springmvc+spring+hibernate整合

     2022-04-20     733

关键词:

一:创建maven工程,引入需要的依赖包,创建项目的工程包

技术分享
二:整合spring和hibernate
    1.建立sql server数据库访问的jdbc配置文件。
        这个配置文件主要是用来将sql server的连接参数放在外面配置,当参数有变动时只需要修改配置文件,不需要修改web-inf下的spring.xml文件
不建立也可以,如果不建立则spring.xml中的数据源配置就如建立数据源配置中的代码1。
  1. jdbcUrl = jdbc:sqlserver://localhost:1433;DatabaseName=dbStudy
  2. driverClass = com.microsoft.sqlserver.jdbc.SQLServerDriver
  3. username = sa
  4. password = sql2008
    2.建立hibernate的配置文件
        因为是由IOC容器来管理Hibernate的SessionFactory并且在Hibernate使用上Spring的声明式事务,所以hibernate的一些配置都可以放在spring的配置文件中。但是为了使配置文件看起啦比较清晰,我还是将hibernate的基本信息单独配置。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <session-factory>
  7. <!-- 配置连接数据库的基本信息 -->
  8. <!-- 1.数据源配置到IOC容器中,所以此处不再需要配置数据源 2.关联的.hbm.xml也在IOC容器配置SessionFactory实例时再进行配置
  9. 3.配置Hibernate的基本属性:方言、SQL显式及格式化、生成数据表的策略以及二级缓存等 -->
  10. <!-- 配置hibernate基本信息 -->
  11. <!-- hibernate所使用的数据库方言 -->
  12. <!-- mysql的Dialect方言配置 -->
  13. <!-- <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> -->
  14. <!-- SQL Server的Dialect方言配置 -->
  15. <propertyname="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
  16. <!-- Oracle的Dialect方言配置 -->
  17. <!-- <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> -->
  18. <!-- 执行操作时是否在控制台打印sql -->
  19. <propertyname="show_sql">true</property>
  20. <!-- 是否对SQL进行格式化 -->
  21. <propertyname="format_sql">true</property>
  22. <!-- 指定自动生成数据表的策略 -->
  23. <propertyname="hbm2ddl.auto">update</property>
  24. </session-factory>
  25. </hibernate-configuration>
    3.建立spring的配置文件
    1)配置自动检测
  1. <!-- 配置自动检测 -->
  2. <!-- Enable annotation configuration -->
  3. <context:annotation-config/>
  4. <!-- Scan packages for Spring annotations -->
  5. <context:component-scanbase-package="com.ympcSoft"/>
    2)配置数据源,本例使用的是阿里巴巴的durid数据源
    代码1:不使用外部属性来配置数据库连接
  1. <beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close">
  2. <!-- mysql 数据库连接配置 -->
  3. <!--
  4. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  5. <property name="url" value="jdbc:mysql://localhost:3306/forestry?useUnicode=true&amp;characterEncoding=utf-8" />
  6. <property name="username" value="root" />
  7. <property name="password" value="123456" />
  8. -->
  9. <!-- oracle 数据库连接配置 -->
  10. <!--
  11. <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
  12. <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
  13. <property name="username" value="SYSTEM" />
  14. <property name="password" value="SkyNet888999" />
  15. -->
  16. <!-- sql server 数据库连接配置 -->
  17. <propertyname="driverClassName"value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
  18. <propertyname="url"value="jdbc:sqlserver://localhost:1433;DatabaseName=dbStudy"/>
  19. <propertyname="username"value="sa"/>
  20. <propertyname="password"value="sql2008"/>
  21. <!-- 配置初始化大小、最小、最大 -->
  22. <propertyname="initialSize"value="1"/>
  23. <propertyname="minIdle"value="1"/>
  24. <propertyname="maxActive"value="20"/>
  25. <!-- 配置获取连接等待超时的时间 -->
  26. <propertyname="maxWait"value="60000"/>
  27. <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  28. <propertyname="timeBetweenEvictionRunsMillis"value="60000"/>
  29. <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  30. <propertyname="minEvictableIdleTimeMillis"value="300000"/>
  31. <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
  32. <propertyname="poolPreparedStatements"value="true"/>
  33. <propertyname="maxPoolPreparedStatementPerConnectionSize"value="20"/>
  34. <!-- 配置监控统计拦截的filters -->
  35. <propertyname="filters"value="stat,log4j"/>
  36. </bean>
    代码2:使用外部属性来配置数据库连接
  1. <!-- 引入 sql server 属性配置文件-->
  2. <context:property-placeholderlocation="classpath:sqlserver.properties"/>
  3. <!-- sql server 数据库连接配置 -->
  4. <propertyname="driverClassName"value="${driverClass}"/>
  5. <propertyname="url"value="${jdbcUrl}"/>
  6. <propertyname="username"value="${username}"/>
  7. <propertyname="password"value="${password}"/>
    注意:引用的变量的名称要和properties文件中定义得一致
    2)配置hibernate的SessionFactory实例,由spring提供LocalSessionFactoryBean
    代码一:是引用外部的hibernate配置文件进行配置
  1. <beanid="sessionFactory"class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  2. <!-- 配置数据 源 -->
  3. <propertyname="dataSource"ref="dataSource"></property>
  4. <!-- 配置hibernate配置文件所在的位置 -->
  5. <propertyname="configLocation"value="classpath:spring-hibernate.cfg.xml"></property>
  6. <!-- 扫描的数据包 -->
  7. <propertyname="packagesToScan"value="com.ympcsoft.sys.domain"></property>
  8. </bean>
代码二:使用原生的hibernatePeroperties属性来进行配置
  1. <!-- 配置SessionFactory,由spring提供 -->
  2. <beanid="sessionFactory"class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  3. <!-- 配置数据 源 -->
  4. <propertyname="dataSource"ref="dataSource"></property>
  5. <!-- 配置hibernate配置文件所在的位置 -->
  6. <!--<property name="configLocation" value="classpath:spring-hibernate.xml"></property>-->
  7. <!-- 使用hibernateProperties属性来配置Hibernate原生的属性 -->
  8. <propertyname="hibernateProperties">
  9. <props>
  10. <propkey="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
  11. <propkey="hibernate.show_sql">true</prop>
  12. <propkey="hibernate.format_sql">true</prop>
  13. <propkey="hibernate.hbm2ddl.auto">update</prop>
  14. </props>
  15. </property>
  16. </bean>
 
    3)配置事务管理(采用注解的方式 ),由spring提供HibernateTransactionManager
  1. <beanid="transactionManager"class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  2. <propertyname="sessionFactory"ref="sessionFactory"></property>
  3. </bean>
  4. <tx:annotation-driventransaction-manager="transactionManager"/>
4.完整的spring.xml文件
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"
  4. xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
  7. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
  8. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
  9. <!-- 配置自动检测 -->
  10. <!-- Enable annotation configuration -->
  11. <context:annotation-config/>
  12. <!-- Scan packages for Spring annotations -->
  13. <context:component-scanbase-package="com.ympcSoft"/>
  14. <!-- 配置数据源,这里采用的是阿里巴巴的 durid -->
  15. <beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close">
  16. <!-- mysql 数据库连接配置 -->
  17. <!--
  18. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  19. <property name="url" value="jdbc:mysql://localhost:3306/forestry?useUnicode=true&amp;characterEncoding=utf-8" />
  20. <property name="username" value="root" />
  21. <property name="password" value="123456" />
  22. -->
  23. <!-- oracle 数据库连接配置 -->
  24. <!--
  25. <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
  26. <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
  27. <property name="username" value="SYSTEM" />
  28. <property name="password" value="SkyNet888999" />
  29. -->
  30. <!-- sql server 数据库连接配置 -->
  31. <propertyname="driverClassName"value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
  32. <propertyname="url"value="jdbc:sqlserver://localhost:1433;DatabaseName=dbStudy"/>
  33. <propertyname="username"value="sa"/>
  34. <propertyname="password"value="sql2008"/>
  35. <!-- 配置初始化大小、最小、最大 -->
  36. <propertyname="initialSize"value="1"/>
  37. <propertyname="minIdle"value="1"/>
  38. <propertyname="maxActive"value="20"/>
  39. <!-- 配置获取连接等待超时的时间 -->
  40. <propertyname="maxWait"value="60000"/>
  41. <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  42. <propertyname="timeBetweenEvictionRunsMillis"value="60000"/>
  43. <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  44. <propertyname="minEvictableIdleTimeMillis"value="300000"/>
  45. <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
  46. <propertyname="poolPreparedStatements"value="true"/>
  47. <propertyname="maxPoolPreparedStatementPerConnectionSize"value="20"/>
  48. <!-- 配置监控统计拦截的filters -->
  49. <propertyname="filters"value="stat,log4j"/>
  50. </bean>
  51. <!-- 配置SessionFactory,由spring提供 -->
  52. <beanid="sessionFactory"class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  53. <!-- 配置数据 源 -->
  54. <propertyname="dataSource"ref="dataSource"></property>
  55. <!-- 配置hibernate配置文件所在的位置 -->
  56. <propertyname="configLocation"value="classpath:spring-hibernate.cfg.xml"></property>
  57. <!-- 扫描的数据包 -->
  58. <propertyname="packagesToScan"value="com.ympcsoft.sys.domain"></property>
  59. </bean>
  60. <!-- 配置声明式事务管理器(采用注解的方式 ),由spring提供HibernateTransactionManager -->
  61. <beanid="transactionManager"class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  62. <propertyname="sessionFactory"ref="sessionFactory"></property>
  63. </bean>
  64. <tx:annotation-driventransaction-manager="transactionManager"/>
  65. </beans>
 



来自为知笔记(Wiz)



spring全家桶--springmvc

SpringMVC​​一、SpringMVC简介​​​​1、什么是MVC​​​​2、什么是SpringMVC​​​​3、SpringMVC的特点​​​​4、SpringMVC快速入门​​​​二、HelloWorld​​​​1、开发环境​​​​2、创建maven工程​​​​a>添加web模块​​​... 查看详情

一文彻底解密spring源码之springmvc

小白都能看懂的Spring源码揭秘之SpringMVC前言SpringMVC请求流程SpringMVC两大阶段初始化HttpServletBean#init()FrameworkServlet#initServletBeanFrameworkServlet#initWebApplicationContextDispatchServlet#onRefreshSpringMVC九大组件Multipar 查看详情

spring知识点总结4springmvc

说说自己对于SpringMVC了解?MVC是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。随着Spring轻量级开发框架的流行,Spring生态圈出现了SpringMVC框架,Spring 查看详情

spring和springmvc的区别

NOTE:需要进行Spring整合SpringMVC吗?还是否需要再加入Spring的IOC容器?是否需要在web.xml文件中配置启动SpringIOC容器的ContextLoaderListener?答案:需要,通常情况下,类似于数据源,事务,整合其他框架都是放在Spring的配置文件中(而... 查看详情

Spring @QuerydslPredicate 问题

...目前,我有一个SpringBoot应用程序,它使用SpringDataJPA(由Hibernat 查看详情

spring学习10-springmvc入门

  二、SpringMVC请求处理流程  其中Frontcontroller:前端控制器 Controller:后端控制器 三、Spring核心组件及请求处理流程 查看详情

什么是springmvc

参考技术A1.SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在 SpringWebFlow 中。 2.SpringMVC=Spring+MVCspringmvc类似于struts的一个... 查看详情

springmvc01

SpringMVC011.概述SpringMVC也叫Springwebmvc,基于spring,是Spring框架的一部分springmvc内部是使用mvc架构模式SpringMVC是管理对象的容器,使用IoC核心技术springmvc管理界面层中的控制器对象SpringMVC底层是Servlet。以Servlet为核心,接收请求,处... 查看详情

一文彻底解密spring源码之springmvc(代码片段)

小白都能看懂的Spring源码揭秘之SpringMVC前言SpringMVC请求流程SpringMVC两大阶段初始化HttpServletBean#init()FrameworkServlet#initServletBeanFrameworkServlet#initWebApplicationContextDispatchServlet#onRefreshSpringMVC九大组件Multipar 查看详情

spring和springmvc的区别是啥?

参考技术ASpring与SpringMVC的区别1、Spring是是一个开源框架,是为了解决企业应用程序开发,简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring可以将简单的组件配置、组合成为复杂的应用。在Spri... 查看详情

spring,springmvc及springboot区别(代码片段)

...定;而对于大部分开发者而言,平时接触最多的应该就是SpringMVC以及SpringBoot了,本文将分别对Spring,SpringMVC以及SpringBoot做总 查看详情

spring,springmvc及springboot区别(代码片段)

...定;而对于大部分开发者而言,平时接触最多的应该就是SpringMVC以及SpringBoot了,本文将分别对Spring,SpringMVC以及SpringBoot做总 查看详情

springmvc学习日记

SpringMVC概述Hadoop弄炸了,再来学学JAVAWEB缓缓SpringMVC是什么SpringMVC:是基于spring的一个框架,实际上就是Spring的一个模块,专门做Web开发的,可以理解为Servlet的一个升级。Web开发底层是Servlet,框架是在Servlet基础长增加一些功能... 查看详情

spring+springmvc+mybatis+mysql整合实例

本文要实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来。建议可以先看笔者另一文章Mybatis与Spring整合创建Web... 查看详情

spring+springmvc+mybatis+mysql整合实例

本文要实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来。建议可以先看笔者另一文章Mybatis与Spring整合创建Web... 查看详情

spring+springmvc+mybatis+mysql整合实例

本文要实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来。建议可以先看笔者另一文章Mybatis与Spring整合创建Web... 查看详情

1.springmvc概述(代码片段)

SpringMVC简介SpringMVC也叫Springwebmvc。是Spring框架的一部分,是在Spring3.0后发布的。Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC... 查看详情

1.springmvc概述(代码片段)

SpringMVC简介SpringMVC也叫Springwebmvc。是Spring框架的一部分,是在Spring3.0后发布的。Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC... 查看详情