程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> spring mvc+spring + hibernate 整合(一),mvchibernate

spring mvc+spring + hibernate 整合(一),mvchibernate

編輯:JAVA綜合教程

spring mvc+spring + hibernate 整合(一),mvchibernate


一:創建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)



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved