首页 > 软件开发 > 编程语言 >

SSH之Spring结合Hibernate如何配置

来源:互联网 2023-03-17 00:28:09 200

SSH(Struts、Spring、Hibernate)框架是目前java开发者比较喜欢的框架,搭建SSH开发平台是首要的工作,本例不谈struts,只讲Spring和Hibernate的配置,主要涉及Spring的事务配置,Hibernate配置。jLD办公区 - 实用经验教程分享!

SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

工具/原料

  • MyEclipse
  • SSH

方法/步骤

  • 1

    准备SSH项目所需的jar文件,数据库用MySQL.jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

  • 1此文章非法爬取自百度经验
  • 2

    为了维护与管理方便,建立一个数据库配置文件dbconfig.propernate(这是目前比较常用的方法)jLD办公区 - 实用经验教程分享!

    #MySQLjLD办公区 - 实用经验教程分享!

    jdbc.driverClassName=com.mysql.jdbc.DriverjLD办公区 - 实用经验教程分享!

    jdbc.url=jdbc:mysql://127.0.0.1:3306/shopping?useUnicode=true&characterEncoding=utf-8jLD办公区 - 实用经验教程分享!

    jdbc.username=rootjLD办公区 - 实用经验教程分享!

    jdbc.password=roojLD办公区 - 实用经验教程分享!

    #hibernate.dialect=org.hibernate.dialect.MySQLDialectjLD办公区 - 实用经验教程分享!

    #原本方言用的是MySQL默认的上面这个,由于数据库字段含有text类型而自定#义了一个方言jLD办公区 - 实用经验教程分享!

    hibernate.dialect=com.bobo.shopping.common.util.BlobMySQLDialectjLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    jdbc.initialPoolSize=10jLD办公区 - 实用经验教程分享!

    hibernate.show_sql=truejLD办公区 - 实用经验教程分享!

    hibernate.format_sql=truejLD办公区 - 实用经验教程分享!

    hibernate.cache.use_query_cache=truejLD办公区 - 实用经验教程分享!

    hibernate.substitutions=true 1, false 0, yes 'Y', no 'N'jLD办公区 - 实用经验教程分享!

    hibernate.cache.provider_class=org.hibernate.cache.EhCacheProviderjLD办公区 - 实用经验教程分享!

    hibernate.jdbc.batch_size=50jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

  • 3

    自定义方言代码:jLD办公区 - 实用经验教程分享!

    package com.bobo.shopping.common.util;jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    import java.sql.Types;jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    import org.hibernate.Hibernate;jLD办公区 - 实用经验教程分享!

    import org.hibernate.dialect.MySQLDialect;jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    public class BlobMySQLDialect extends MySQLDialect{jLD办公区 - 实用经验教程分享!

    public BlobMySQLDialect(){ jLD办公区 - 实用经验教程分享!

    super(); jLD办公区 - 实用经验教程分享!

    registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName()); jLD办公区 - 实用经验教程分享!

    } jLD办公区 - 实用经验教程分享!

    }jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

  • 4

    创建Spring链接数据库配置applicationContext-db.xml文件:jLD办公区 - 实用经验教程分享!

    数据库链接用的是c3p0.jLD办公区 - 实用经验教程分享!

    ?xml version="1.0" encoding="UTF-8"?>jLD办公区 - 实用经验教程分享!

    beansjLD办公区 - 实用经验教程分享!

    xmlns="http://www.springframework.org/schema/beans"jLD办公区 - 实用经验教程分享!

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"jLD办公区 - 实用经验教程分享!

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">jLD办公区 - 实用经验教程分享!

    !-- To provide a placeholder, mainly for database configuration -->jLD办公区 - 实用经验教程分享!

    bean id="propertyConfigure" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">jLD办公区 - 实用经验教程分享!

    property name="locations">jLD办公区 - 实用经验教程分享!

    list>jLD办公区 - 实用经验教程分享!

    value>classpath:resource/properties/dbconfig.properties/value>jLD办公区 - 实用经验教程分享!

    /list>jLD办公区 - 实用经验教程分享!

    /property>jLD办公区 - 实用经验教程分享!

    /bean>jLD办公区 - 实用经验教程分享!

    !--Database connection pool configuration -->jLD办公区 - 实用经验教程分享!

    bean id="sysDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">jLD办公区 - 实用经验教程分享!

    property name="driverClass">value>${jdbc.driverClassName}/value>/property>jLD办公区 - 实用经验教程分享!

    property name="jdbcUrl">value>${jdbc.url}/value>/property>jLD办公区 - 实用经验教程分享!

    property name="user">value>${jdbc.username}/value>/property>jLD办公区 - 实用经验教程分享!

    property name="password">value>${jdbc.password}/value>/property>jLD办公区 - 实用经验教程分享!

    property name="initialPoolSize">value>${jdbc.initialPoolSize}/value>/property>jLD办公区 - 实用经验教程分享!

    /bean>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !-- JDBC start , no transaction-->jLD办公区 - 实用经验教程分享!

    bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">jLD办公区 - 实用经验教程分享!

    property name="dataSource" ref="sysDataSource" />jLD办公区 - 实用经验教程分享!

    /bean>jLD办公区 - 实用经验教程分享!

    !-- JDBC end -->jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    bean id="sessionFactory"jLD办公区 - 实用经验教程分享!

    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">jLD办公区 - 实用经验教程分享!

    property name="dataSource">jLD办公区 - 实用经验教程分享!

    ref bean="sysDataSource" />jLD办公区 - 实用经验教程分享!

    /property>jLD办公区 - 实用经验教程分享!

    property name="hibernateProperties">jLD办公区 - 实用经验教程分享!

    props>jLD办公区 - 实用经验教程分享!

    prop key="hibernate.dialect">${hibernate.dialect}/projLD办公区 - 实用经验教程分享!

    prop key="hibernate.show_sql">${hibernate.show_sql}/projLD办公区 - 实用经验教程分享!

    prop key="hibernate.format_sql">${hibernate.format_sql}/pro jLD办公区 - 实用经验教程分享!

    prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}/projLD办公区 - 实用经验教程分享!

    prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}/projLD办公区 - 实用经验教程分享!

    prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}/projLD办公区 - 实用经验教程分享!

    /props>jLD办公区 - 实用经验教程分享!

    /property>jLD办公区 - 实用经验教程分享!

    !-- 按照包路径自动绑定hibernate实体 -->jLD办公区 - 实用经验教程分享!

    property name="packagesToScan" value="com.bobo.shopping.app.*.model">/property>jLD办公区 - 实用经验教程分享!

    /bean>jLD办公区 - 实用经验教程分享!

    /beans>jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

  • 5

    创建Spring事务管理配置文件applicationContext.xml文件:jLD办公区 - 实用经验教程分享!

    ?xml version="1.0" encoding="UTF-8"?>jLD办公区 - 实用经验教程分享!

    beansjLD办公区 - 实用经验教程分享!

    xmlns="http://www.springframework.org/schema/beans"jLD办公区 - 实用经验教程分享!

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"jLD办公区 - 实用经验教程分享!

    xmlns:aop="http://www.springframework.org/schema/aop"jLD办公区 - 实用经验教程分享!

    xmlns:tx="http://www.springframework.org/schema/tx" jLD办公区 - 实用经验教程分享!

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdjLD办公区 - 实用经验教程分享!

    http://www.springframework.org/schema/aop jLD办公区 - 实用经验教程分享!

    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd jLD办公区 - 实用经验教程分享!

    http://www.springframework.org/schema/tx jLD办公区 - 实用经验教程分享!

    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !-- 事务管理器,将委托给HibernateTransactionManager进行管理//-->jLD办公区 - 实用经验教程分享!

    bean id="transactionManager"jLD办公区 - 实用经验教程分享!

    class="org.springframework.orm.hibernate3.HibernateTransactionManager">jLD办公区 - 实用经验教程分享!

    property name="sessionFactory" ref="sessionFactory" />jLD办公区 - 实用经验教程分享!

    /bean>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !-- 事务处理的AOP配置 所有服务层bean声明都要继承此bean//-->jLD办公区 - 实用经验教程分享!

    bean id="TransactionProxyTemplate" abstract="true"jLD办公区 - 实用经验教程分享!

    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">jLD办公区 - 实用经验教程分享!

    property name="transactionManager" ref="transactionManager" />jLD办公区 - 实用经验教程分享!

    property name="transactionAttributes">jLD办公区 - 实用经验教程分享!

    props>jLD办公区 - 实用经验教程分享!

    !-- 为了保证服务层统一的事务处理。服务层接口,类的方法必须以下面的方法为开口 -->jLD办公区 - 实用经验教程分享!

    !--spring 捕获到RuntimeException和其他一些异常时才会回滚,不是所有异常都会回滚,-Exception 设置 为任何异常都回滚 -->jLD办公区 - 实用经验教程分享!

    prop key="get*">PROPAGATION_REQUIRED,readOnly/projLD办公区 - 实用经验教程分享!

    prop key="find*">PROPAGATION_REQUIRED,readOnly/projLD办公区 - 实用经验教程分享!

    prop key="query*">PROPAGATION_REQUIRED,readOnly/projLD办公区 - 实用经验教程分享!

    prop key="save*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="insert*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="add*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="up*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="mod*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="delete*">PROPAGATION_REQUIRED,-Exception /projLD办公区 - 实用经验教程分享!

    prop key="remove*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="create*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="execute*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    prop key="do*">PROPAGATION_REQUIRED,-Exception/projLD办公区 - 实用经验教程分享!

    /props>jLD办公区 - 实用经验教程分享!

    /property>jLD办公区 - 实用经验教程分享!

    /bean>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !-- 提供普通java类获取spring上下文 通过上下文获取具体bean,调用其中的方法 -->jLD办公区 - 实用经验教程分享!

    bean id="springApplicationContextUtil" class="com.bobo.shopping.common.util.SpringApplicationContextUtil">/bean>jLD办公区 - 实用经验教程分享!

    !-- CDB数据源管理 -->jLD办公区 - 实用经验教程分享!

    !--bean id="CDBManager" class="com.bobo.shopping.common.util.CDBManager">/bean>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    -->/beans>jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

  • 6

    配置web.xml文件:jLD办公区 - 实用经验教程分享!

    context-param>jLD办公区 - 实用经验教程分享!

    param-name>contextConfigLocation/param-name>jLD办公区 - 实用经验教程分享!

    param-value>jLD办公区 - 实用经验教程分享!

    classpath*:resource/spring/**/application*.xmljLD办公区 - 实用经验教程分享!

    /param-value>jLD办公区 - 实用经验教程分享!

    /context-param>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !--Hibernate 的配置 -->jLD办公区 - 实用经验教程分享!

    filter>jLD办公区 - 实用经验教程分享!

    filter-name>hibernateFilter/filter-name>jLD办公区 - 实用经验教程分享!

    filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter/filter-class>jLD办公区 - 实用经验教程分享!

    /filter>jLD办公区 - 实用经验教程分享!

    filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-name>hibernateFilter/filter-name>jLD办公区 - 实用经验教程分享!

    url-pattern>/*/url-pattern>jLD办公区 - 实用经验教程分享!

    /filter-mapping>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !--STRUTS 2 的配置 -->jLD办公区 - 实用经验教程分享!

    filter>jLD办公区 - 实用经验教程分享!

    filter-name>struts-cleanup/filter-name>jLD办公区 - 实用经验教程分享!

    filter-class>jLD办公区 - 实用经验教程分享!

    org.apache.struts2.dispatcher.ActionContextCleanUpjLD办公区 - 实用经验教程分享!

    /filter-class>jLD办公区 - 实用经验教程分享!

    /filter>jLD办公区 - 实用经验教程分享!

    filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-name>struts-cleanup/filter-name>jLD办公区 - 实用经验教程分享!

    url-pattern>*.action/url-pattern>jLD办公区 - 实用经验教程分享!

    /filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-name>struts-cleanup/filter-name>jLD办公区 - 实用经验教程分享!

    url-pattern>*.jsp/url-pattern>jLD办公区 - 实用经验教程分享!

    /filter-mapping>jLD办公区 - 实用经验教程分享!

    filter>jLD办公区 - 实用经验教程分享!

    filter-name>struts/filter-name>jLD办公区 - 实用经验教程分享!

    filter-class>jLD办公区 - 实用经验教程分享!

    org.apache.struts2.dispatcher.FilterDispatcherjLD办公区 - 实用经验教程分享!

    /filter-class>jLD办公区 - 实用经验教程分享!

    /filter>jLD办公区 - 实用经验教程分享!

    filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-name>struts/filter-name>jLD办公区 - 实用经验教程分享!

    url-pattern>*.action/url-pattern>jLD办公区 - 实用经验教程分享!

    /filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-name>struts/filter-name>jLD办公区 - 实用经验教程分享!

    url-pattern>*.jsp/url-pattern>jLD办公区 - 实用经验教程分享!

    /filter-mapping>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !--解决Form提交乱码问题 -->jLD办公区 - 实用经验教程分享!

    filter>jLD办公区 - 实用经验教程分享!

    filter-name>encodingFilter/filter-name>jLD办公区 - 实用经验教程分享!

    filter-class>jLD办公区 - 实用经验教程分享!

    org.springframework.web.filter.CharacterEncodingFilterjLD办公区 - 实用经验教程分享!

    /filter-class>jLD办公区 - 实用经验教程分享!

    init-param>jLD办公区 - 实用经验教程分享!

    param-name>encoding/param-name>jLD办公区 - 实用经验教程分享!

    param-value>UTF-8/param-value>jLD办公区 - 实用经验教程分享!

    /init-param>jLD办公区 - 实用经验教程分享!

    /filter>jLD办公区 - 实用经验教程分享!

    filter-mapping>jLD办公区 - 实用经验教程分享!

    filter-name>encodingFilter/filter-name>jLD办公区 - 实用经验教程分享!

    url-pattern>/*/url-pattern>jLD办公区 - 实用经验教程分享!

    /filter-mapping>jLD办公区 - 实用经验教程分享!

    jLD办公区 - 实用经验教程分享!

    !-- spring -->jLD办公区 - 实用经验教程分享!

    listener>jLD办公区 - 实用经验教程分享!

    listener-class>org.springframework.web.context.ContextLoaderListener/listener-class>jLD办公区 - 实用经验教程分享!

    /listener>jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

    SSH之Spring结合Hibernate如何配置jLD办公区 - 实用经验教程分享!

  • 7

    简单的SSH,Spring和Hibernate配置文件主要就是这几点,具体的struts配置就不提了。有更详细的可以给我留下评论一起交流。jLD办公区 - 实用经验教程分享!

  • 注意事项

    • SSH jar需要完整,网上有很多可以下载用的
    • spring配置hibernate实体的时候用包路径,不要一个一个的添加:
    • 具体使用还需要配置具体的struts和spring文件
    • 有不明白的地方可以给我留言,如果对你有帮助的话请给与支持

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!jLD办公区 - 实用经验教程分享!


    标签: 编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码