首先导入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. VMWARE修改CPUID

    在cmd shell下执行wmic cpu get ProcessorId命令,可是查看机器的cpuID,但这个命令显示的只是2组ID,实际CPUID,有4组 通过更改虚拟机配置文件.vmx可是实现任 ...

  2. 419. Battleships in a Board

    https://leetcode.com/problems/battleships-in-a-board/ 给定一个N×N的棋盘,有任意数量的1×N或N×1大小的"船",注意船船之 ...

  3. Android导包导致java.lang.NoClassDefFoundError

    摘要: SDK方法总数是不能超过65k的.是否也引入其他的三方库,导致总数超过限制.超出限制会导致部分class找不到,引发java.lang.NoClassDefFoundError.解决方法:近日 ...

  4. Oracle中使用REGEXP_SUBSTR,regexp_replace函数

    REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr ...

  5. 【Django】--Model字段

    参考地址:http://www.cnblogs.com/wupeiqi/articles/6216618.html 所有字段 AutoField(Field) --int自增列,必须填入参数prima ...

  6. tp基础,文件存储路径

    tp框架的几点注意事项: 1.tp框架结构MVC模式2.MVC模式最终访问的是方法,不是具体 页面3.控制器用驼峰法命名4.约定胜于配置 index.php:入口文件 Application:应用程序 ...

  7. 用javascript设置和读取cookie的例子

    请看下面用javascript设置和读取cookie的简单例子,现在的问题是,如果要设置的是一个cookie集,比如在cookie1集中有uname,uid两组信息,应该如何写呢?cookie(&qu ...

  8. 剑指Offer-【面试题03:二维数组中的查找】

    package com.cxz.question3; /* * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. * 请完成一个函数,输入这样的一个二维数组和 ...

  9. 利用C# Winform做Windows系统任务栏

    最近公司做一个考试系统,需要一个答题栏,要求:占用屏幕上方一部分区域,而且始终置顶,当其他窗口最大化时"答题栏"始终置前并且不遮挡最大化窗口的任何部分!就像windows任务栏一样 ...

  10. 责任链模式/chain of responsibility/行为型模式

    职责链模式 chain of responsibility 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处 ...