(三)spring与Hibernate的整合

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类中添加注解即可。

这里写图片描述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值