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类中添加注解即可。
至此,三大框架整合完毕。