(三)spring与Hibernate的整合

原创 2016年08月30日 21:12:49

1.创建数据库

不需要创建表,只需要创建数据库。

mysql> create database ssh_em;

2.创建实体类的配置文件

实体类的配置文件如下:

这里写图片描述

配置文件头部的约束信息我们可以在hibernate的核心包hibernate3.jar下的第一个包org.hibernate下面的dtd约束信息中找到。

3.组织jdbc的属性文件

我们在src下面建立一个属性文件来存储数据库的一些信息。文件内容如下:

jdbc.DriverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssh_em
jdbc.username=root
jdbc.password=654321

4.applicationContext.xml文件中配置hibernate

①:引入属性文件

既然我们第三步已经准备好数据库的属性文件,那么我们将数据库属性文件引入spring

具体如下:

    <!-- 引入外部属性文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

②:配置连接池

我们使用c3p0连接池,因此连接池的具体配置如下:

    <!-- 配置连接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.DriverClass}"></property>
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

这里我们要注意的是,可以使用${ …}的形式来引入外部属性文件的属性值。

③:配置Hibernate的相关属性

Hibernate有很多属性,首先我们需要注入连接池,然后配置hibernate的其他属性,最后将映射文件引入。这里会涉及到hibernate的几个属性。具体看下面的代码:

    <!-- 配置Hibernate的相关属性 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 注入连接池 -->
        <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.hbm2ddl.auto">update</prop>
        </props>
        </property>
        <!-- 加载映射文件 -->
        <property name="mappingResources">
            <list>
                <value>com/vayne/ssh/domain/Product.hbm.xml</value>
            </list>
        </property>
    </bean>

上述配置共涉及到dataSource、hibernateProperties和mappingResources属性。下面我们来简要看一下LocalSessionFactoryBean这个类的相关信息:

这里写图片描述

其中mappingResources是Properties类型的,因此需要用list标签来遍历。

5.DAO层代码编写

DAO层使用Hibernate需要有一个模板,在Hibernate中已经为我们创建好了这个模板,因此我们只需要继承这个模板类即可:

package com.vayne.ssh.dao;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.vayne.ssh.domain.Product;

/**
 * 
 * 商品管理的DAO类
 * 
 */
public class ProductDao extends HibernateDaoSupport{

    public void save(Product product) {

        System.out.println("dao中的save执行了..."); 
        this.getHibernateTemplate().save(product);  

    }

}

另外我们需要注意的是,模板中需要一个sessionFactory对象,因此我们需要spring为其注入这个对象,所以在applicationContext.xml文件中DAO类配置做如下改动:

这里写图片描述

即注入一个sessionFactory对象。

6.添加一个事务

事务添加如下:

这里写图片描述

最后只需要在service类中添加注解即可。

这里写图片描述

至此,三大框架整合完毕。

版权声明:本文为博主原创文章,转载请注明出处。

spring与hibernate整合(三种方式)

Spring与Hibernate整合关键点:          1) Hibernate的SessionFactory对象交给Spring创建;          2) hibernate事务交给...
  • u014010769
  • u014010769
  • 2015年07月31日 20:33
  • 3418

详细解释Spring与Hibernate的整合原理

spring与hibernate的整合
  • canot
  • canot
  • 2016年01月13日 17:38
  • 4772

Spring mvc+Spring+hibernate整合

有段时间没有更新博客了,跟最近比较忙有关系。无聊搭建个Java web框架,反正好久没有自己搭建框架了,算是练练手了,今天我就来搭建一个框架,技术选型为Spring mvc+Spring+hibern...
  • hhs1314520
  • hhs1314520
  • 2016年07月20日 20:55
  • 5551

spring整合hibernate的两种方式

我们学过spring的同学都知道,spring可以整合其他的框架协同开发,大大的降低开发的时间和提高了效率,但是我们在配置的时候总会发生各种各样的问题,下面我记录一下我在配置的时候出现的问题和简单总结...
  • xujin_chen
  • xujin_chen
  • 2016年12月10日 11:37
  • 3269

Struts1+Spring+Hibernate3.3整合笔记

ssh整合   ssh(struts+spring+hibernate) 三大框架配合使用来开发项目,是目前java ee 最流行的开发方式,必须掌握.     设计: 这我们通过一个实际的案例,来讲...
  • a2459956664
  • a2459956664
  • 2016年12月10日 10:35
  • 505

spring spring+springMVC+hibernate整合

搭建一个项目,不单单是MVC,我们还需要涉及到数据访问层,这里就需要hibernate框架来实现。(实现数据访问的框架很多,这里学习hibernate) 一、创建一个web项目 首先我们需...
  • w410589502
  • w410589502
  • 2017年01月16日 16:00
  • 1632

Spring+Hibernate整合开发配置,完整实例

hibernate spring 配置
  • ZWX2445205419
  • ZWX2445205419
  • 2016年09月20日 00:48
  • 1073

spring+hibernate 两种整合方式配置文件

之前的文章都是讲解springmvc+spring+mybatis 的整合,而很少有springmvc+spring+hibernate 因为工作的需要,最近在使用hibernate 所以下面我们来看...
  • QH_JAVA
  • QH_JAVA
  • 2016年07月05日 02:07
  • 14565

Spring+Hibernate结合总结

过去一星期主要把精力放在了数据库Hibernate和Spring的结合上,所以也搜集和总结了一些有用的资料,整理如下。 自己最大的感受是Spring对Hibernate提供了非常好的支持,包括Ses...
  • u010122002
  • u010122002
  • 2014年11月08日 11:30
  • 716

SpringData,Spring与Hibernate整合小记

Repository SpringData Hibernate
  • W1025514023
  • W1025514023
  • 2016年11月12日 21:34
  • 672
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(三)spring与Hibernate的整合
举报原因:
原因补充:

(最多只允许输入30个字)