首先导入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. Windows+Caffe+VS2013+python接口配置过程

    前段时间在笔记本上配置了Caffe框架,中间过程曲曲折折,但由于懒没有将详细过程总结下来,这两天又在一台配置较高的台式机上配置了Caffe,配置时便非常后悔当初没有写到博客中去,现已配置好Caffe, ...

  2. Requests 乱码

    当使用Requests请求网页时,出现下面图片中的一些乱码,我就一脸蒙逼. 程序是这样的. def getLinks(articleUrl): headers = { "Uset-Agent ...

  3. 小米4 miui专用 Xposed安装器86版

    转载自 http://www.52pojie.cn/thread-516435-1-1.html 写在前面:各位用xp受到不同限制,有些机型还找不到框架包,又要刷第三方rec又要谨慎选择框架版本.官方 ...

  4. myabatis oracle 调用存储过程返回list结果集

    Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...

  5. cxf webservice 生成wsdl方法参数名称为arg0问题

    在通过cxf生成webservice服务时,如果你是用ServerFactoryBean,那么在生成wsdl时,方法的参数名称会被自动命名为arg0,arg1...,如: <xsd:comple ...

  6. 有人要分享pjax吗?

    安装 1.在 composer.json 的 require里 加入 "yuanchao/pjax-for-laravel-5": "dev-master" 2 ...

  7. MFC序列化与反序列化

    #pragma once #include "afx.h" #include <vector> using std::vector; class HzyData : p ...

  8. 【转】Linux makefile 教程 非常详细,且易懂

    From: http://blog.csdn.net/liang13664759/article/details/1771246 最近在学习Linux下的C编程,买了一本叫<Linux环境下的C ...

  9. 在jquery中,全选/全不选的表示方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  10. 限制textarea的字数(包括复制粘贴)

    <textarea cols="100%" rows="10" id="tuconent" placeholder="评价( ...