首先导入spring和Hibernate的jar包,以及JDBC和c3p0的jar包,

然后就是Hibernate的XML配置文件,不需要加入映射文件,这里用spring容器管理了。

Hibernate的XML文件

之后就是连接池的db.properpies文件。

之后就是包的定义,要实现spring和Hibernate的整合必须要在接口下来实现。

然后就是spring的配置文件app.xml文件。

app.xml文件

文件的开始要加入.xsd的几个文件路径,spring-beans、spring-aop、spring-context、cpring-jdbc、spring-tx(事务的)

引用外部获取连接池的db.properies文件

注入sessionFactory来获取session的。主要用于DAO层获取当前session,以及获取上面连接池的数据连接、加载Hibernate配置文件和映射文件,(路径制定到entity包就可以)

的bean,DAO层和service层(注意这里class限定名是接口的实现类而非接口的

声明事务(name里的值都是属性)

代码部分:

DAO层,注入session的属性sessionFactory。通过.getCurrentSession()得到当前session

package com.hanqi.dao.impl;

import org.hibernate.SessionFactory;

import com.hanqi.dao.TBankcardDAO;
import com.hanqi.entity.TBankcard;
//TBankcardDAO接口的实现类
public class TBankcardDAOImpl implements TBankcardDAO { //注入SessionFactory
private SessionFactory sessionFactory ; public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
} @Override
public TBankcard getCard(String cardID) { //得到当前的session
TBankcard rtn = (TBankcard) sessionFactory
.getCurrentSession()
.get(TBankcard.class, cardID); return rtn;
} @Override
public void insert(TBankcard card) {
// TODO 自动生成的方法存根
sessionFactory.getCurrentSession().save(card);
} @Override
public void update(TBankcard card) {
// TODO 自动生成的方法存根
sessionFactory.getCurrentSession().update(card);
} @Override
public void delete(TBankcard card) {
// TODO 自动生成的方法存根
sessionFactory.getCurrentSession().delete(card);
} }

  service层(TBankcardDAO的属性)

package com.hanqi.service.impl;

import java.math.BigDecimal;
import java.util.Date; import com.hanqi.dao.TBankcardDAO;
import com.hanqi.entity.TBankcard;
import com.hanqi.service.TBankcardService; public class TBankServiceImpl implements TBankcardService { //注入Dao
private TBankcardDAO tBankcardDAO; public void settBankcardDAO(TBankcardDAO tBankcardDAO) {
this.tBankcardDAO = tBankcardDAO;
} @Override
public TBankcard getBankcard(String cardID) {
// TODO 自动生成的方法存根
return tBankcardDAO.getCard(cardID);
} @Override
public void addCard(TBankcard card) {
// TODO 自动生成的方法存根
tBankcardDAO.insert(card);
} @Override
public void editCard(TBankcard card) {
// TODO 自动生成的方法存根
tBankcardDAO.update(card);
} @Override
public void deleteCard(TBankcard card) {
// TODO 自动生成的方法存根
tBankcardDAO.delete(card);
} @Override
public void testTX() {
// TODO 自动生成的方法存根
TBankcard t1 = tBankcardDAO.getCard("123456");
tBankcardDAO.delete(t1); //产生异常
TBankcard card = new TBankcard("123457","123","tom","123",new BigDecimal(123.45),new Date(),'1');
tBankcardDAO.insert(card);
} }

  测试

package com.hanqi.test;

import java.math.BigDecimal;
import java.util.Date; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.hanqi.entity.TBankcard;
import com.hanqi.service.TBankcardService; public class TestMain { public static void main(String[] args) {
// TODO 自动生成的方法存根 ApplicationContext ac=
new ClassPathXmlApplicationContext("app.xml");
TBankcardService c1 = (TBankcardService)ac.getBean("card1"); System.out.println(c1.getBankcard("759074")); TBankcard t1 = new TBankcard("123456","123","tom","123",new BigDecimal(123.45),new Date(),'1');
//c1.addCard(t1);
c1.testTX();
} }

  

spring和Hibernate整合的更多相关文章

  1. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  2. Spring与Hibernate整合,实现Hibernate事务管理

    1.所需的jar包 连接池/数据库驱动包 Hibernate相关jar Spring 核心包(5个) Spring aop 包(4个) spring-orm-3.2.5.RELEASE.jar     ...

  3. Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题

    近期在知乎看到一句话,保持学习的有一种是你看到了很多其它的牛人,不甘心,真的不甘心. Spring和hibernate整合的时候,jsp页面做展现,发现展现属性出现: org.apache.jaspe ...

  4. 框架篇:Spring+SpringMVC+hibernate整合开发

    前言: 最近闲的蛋疼,搭个框架写成博客记录下来,拉通一下之前所学知识,顺带装一下逼. 话不多说,我们直接步入正题. 准备工作: 1/ IntelliJIDEA的安装配置:jdk/tomcat等..(本 ...

  5. Spring第九篇【Spring与Hibernate整合】

    前言 前面已经学习了如何使用Spring与Struts2进行整合,本博文主要讲解如何使用Spring对Hibernate进行整合 Spring和Hibernate整合的关键点: SessionFact ...

  6. spring+springmvc+hibernate 整合

    三大框架反反复复搭了很多次,虽然每次都能搭起来,但是效率不高.最近重新搭了一次,理顺了思路,整理了需要注意的地方,分享出来. 工具:Eclipse(jdk 1.7) spring和hibernate版 ...

  7. spring和hibernate整合,事务管理

    一.spring和hibernate整合开发步骤 1 引入jar文件,用户libarary列表如下 //spring_core spring3..9core\commons-logging-1.2.j ...

  8. spring和hibernate整合时报sessionFactory无法获取默认Bean Validation factory

    Hibernate 3.6以上版本在用junit测试时会提示错误: Unable to get the default Bean Validation factory spring和hibernate ...

  9. spring+springmvc+hibernate整合遇到的问题

    spring+springmvc+hibernate整合遇到的问题2016年10月20日 23:24:03 守望dfdfdf 阅读数:702 标签: ssh学习经历的异常exception异常框架更多 ...

  10. Java进阶知识25 Spring与Hibernate整合到一起

    1.概述 1.1.Spring与Hibernate整合关键点 1) Hibernate的SessionFactory对象交给Spring创建.    2) hibernate事务交给spring的声明 ...

随机推荐

  1. 模拟搭建Web项目的真实运行环境(五)

    一.开启IIS功能 刚安装完的server2008是没有默认开启IIS功能,在这里简单介绍一下如何开启IIS. 步骤: 1. 打开控制面板,选中[程序] 2. 在[程序和功能]下面,选择[打开或关闭w ...

  2. 在c#中的TextBox响应回车键发出“咚”的一声解决方法

    在Win7系统的VS2012下的Form中,响应TextBox的KeyDown事件后,当按下回车键时发出"咚"的一声,百度后得到一下这样一个说法: 这是对于 windows 窗口标 ...

  3. startUML破解方式

    StarUML官方下载地址:http://staruml.io/download StarUML是一个非常好用的画UML图的工具,但是它是收费软件​,以下是破解方法: ​1.使用Editplus或者N ...

  4. CSS--实现小三角形

    <style> html, body { margin: 0; padding: 0; } /*下面用CSS3分别实现向上.下.左.右的三角形*/ .btn-color{ color: # ...

  5. Guava学习笔记(一)概览

    Guava是谷歌开源的一套Java开发类库,以简洁的编程风格著称,提供了很多实用的工具类, 在之前的工作中应用过Collections API和Guava提供的Cache,不过对Guava没有一个系统 ...

  6. 联想笔记本如何开启笔记本的VT-x虚拟化技术功能

    虚拟化技术支持,需几个方面的条件支持:芯片组自身支持.BIOS提供支持.处理器自身支持.操作系统支持. 操作系统方面,主流操作系统均支持VMM管理,因此无需考虑. 而芯片组方面,从Intel 945( ...

  7. 防止sql注入和sqlmap介绍

    sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...

  8. AVL树的平衡算法(JAVA实现)

      1.概念: AVL树本质上还是一个二叉搜索树,不过比二叉搜索树多了一个平衡条件:每个节点的左右子树的高度差不大于1. 二叉树的应用是为了弥补链表的查询效率问题,但是极端情况下,二叉搜索树会无限接近 ...

  9. JavaScript DOM节点和文档类型

    以下的例子以此HTML文档结构为例: <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  10. iOS---FMDB数据升级

    本人在这里重要强调一下!!! 看这里,看这里,看这里,重要的事说三遍. 本人在项目开发中,由于需求问题,不得不对已经建立好的数据库进行修改(添加字段),我就很随意的直接添加了对一个的字段,运行一下,数 ...