关闭

(三)spring与Hibernate的整合

标签: hibernatespring数据库
117人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:78796次
    • 积分:2570
    • 等级:
    • 排名:第14323名
    • 原创:180篇
    • 转载:5篇
    • 译文:0篇
    • 评论:15条
    友情链接
    最新评论
    xxx
      休闲时刻
        学累了吗?用鼠标逗逗它吧^_^