mysql5.7 hibenate5.1_5.7 Spring与Hibernate整合应用

下面以一个简单的实例说明Spring与Hibernate的整合策略,步骤如下。

1 在SQL Server 2005中创建数据库表

数据库名为XSCJ,表见附录A的登录表。

2 创建Web项目

命名为“Hibernate_Spring”

3 添加Spring的开发能力

右击项目名,选择【MyEclipse】→【Add Spring Capabilities…】菜单项,将出现如图5.9所示的对话框,选中要应用的Spring的版本及所需的类库文件。注意,本书用的Spring版本为Spring 2.0。选择Spring的核心类库Spring 2.0 Core Libraries、Spring 2.0 Web Labraries、Spring 2.0 AOP Libraries和Spring 2.0 Persistence JDBC Libraries。

634429

b4b1be81db79880fa92bbaab4a48c4fb.png

图5.9  添加Spring Capabilities

单击【Next】按钮,提示是否建立Spring配置文件,在默认情况下选择application Context.xml文件的存放路径,选择在WEB-INF文件夹下,然后单击【Finish】按钮,如图5.10所示。

634429

74482d80096167465294c4ffd49b29dc.png

图5.10  创建applicationContext.xml文件

4 加载Hibernate框架

右击工程文件,选择【MyEclipse】→【Add Hibernate Capabilities…】菜单项,出现如图5.11所示的对话框。选择Hibernate版本及需要的类库。

91c86c0e2153ddd11eb80c1d82c6c059.png

图5.11  添加Hibernate库

单击【Next】按钮,出现如图5.12所示对话框,提示是用Hibernate的配置文件还是用Spring的配置文件进行SessionFactory的配置,选择使用Spring来对Hibernate进行管理。这样最后生成的工程中就不包含hibernate.cfg.xml,好处是在一个地方就可以对Hibernate进行管理。

634429

b12162816e60af6e615e483267ad8a41.png

图5.12  定义Hibernate配置

单击【Next】按钮,出现如图5.13所示的对话框,提示是创建一个新的Hibernate配置文件还是使用已有的配置文件,由于刚才已经生成了Spring配置文件,并且要在其中进行Hibernate的配置,所以选择复选框“Existing Spring configuration file”。

634429

e4abbd39aeeda2dde777fd2280a08382.png

图5.13  定义Spring-Hibernate配置

单击【Next】按钮,出现如图5.14所示的对话框,要求选择数据库连接信息。这里需要注意一点,Bean Id处填写数据源的名称,如“datasource”。数据源的创建请参考4.2.1节中的第2步。

634429

70f18c94402257f4120d7686f78925cb.png

图5.14  指定新的Spring数据源连接信息

单击【Next】按钮,出现如图5.15所示的对话框,提示是否创建SessionFactory类,由于本程序Spring为注入sessionFactory,所以不用创建,单击【Finish】按钮。

5818448c970f347c05e96d77a03c2380.png

634429

图5.15  定义SessionFactory属性

5 生成与数据库表对应的Java数据对象和映射

打开MyEclipse的Database Exploer Perspective,右击DLB表,选择Hibernate Reverse Engineering菜单项,如图5.16所示设置。

634429

cdebb588f9c015f1e53f9566b042777b.png

图5.16  Hibernate映射文件和POJO类

单击【Next】按钮,在ID generator中选择native,直接单击【Finish】按钮完成。

6 编写DlDao.java接口

在src文件夹下建立包org.dao,在该包先建立接口,命名为“DlDao”,这里主要以添加用户为例,代码如下:

package org.dao;

import org.model.Dlb;

public interface DlDao {

public void save(Dlb dl);

}

7 编写DlDao.java实现类

在src文件夹下建立包org.dao.imp,在该包下建立类,命名为“DlDaoImp”,代码。

package org.dao.imp;

import org.dao.DlDao;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.model.Dlb;

public class DlDaoImp implements DlDao{

//依赖注入SessionFactory对象,set方法注入

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {

this.sessionFactory = sessionFactory;

}

public void save(Dlb dl) {

try{

//获得Session对象

Session session=sessionFactory.openSession();

Transaction ts=session.beginTransaction();

session.save(dl);

ts.commit();

}catch(Exception e){

e.printStackTrace();

}

}

}

8  修改Spring配置文件applicationContext.xml

applicationContext.xml文件的代码修改。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

class="org.apache.commons.dbcp.BasicDataSource">

value="com.microsoft.sqlserver.jdbc.SQLServerDriver">

value="jdbc:sqlserver://localhost:1433;databaseName=XSKC">

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

org.hibernate.dialect.SQLServerDialect

/org/model/Dlb.hbm.xml

9 编写测试类

在src文件夹下建立包test,在该包下建立类Test,代码如下:

package test;

import org.dao.DlDao;

import org.model.Dlb;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

public class Test {

public static void main(String[] args){

Dlb dlb=new Dlb();

dlb.setId(1);

dlb.setXh("081109");

dlb.setKl("123456");

ApplicationContext context=new

FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");

DlDao dlDao=(DlDao) context.getBean("dlDao");

dlDao.save(dlb);

}

}

运行该测试类后,打开数据库,可以发现在DLB表中添加了一项记录,如图5.17所示。

c80beb18ba94f3a8e5bb45ad1b0255a2.png 

634429

图5.17  登录表

Spring的Hibernate ORM 框架带来了方便的HibernateDaoSupport类,该类为Dao类提供了非常方便的方法getHibernateTemplate(),Dao类只要继承HibernateDaoSupport就可以使用该方法,例如上例的Dao实现类可以改成如下的代码:

package org.dao.imp;

import org.dao.DlDao;

import org.model.Dlb;

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

public class DlDaoImp extends HibernateDaoSupport implements DlDao{

public void save(Dlb dl) {

getHibernateTemplate().save(dl);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值