博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
十八、Spring整合Hibernate
阅读量:5153 次
发布时间:2019-06-13

本文共 2124 字,大约阅读时间需要 7 分钟。

Spring整合Hibernate

1.Spring提供的DAO支持

(1)DAO模式是一种标准的JavaEE设计模式,DAO模式的核心思想是,所有数据库访问都通过DAO组件完成,DAO组件封装了数据库的增、删、改等原子操作。业务逻辑组件依赖于DAO组件提供的书苦苦原子操作,完成系统业务逻辑的实现;

(2)JavaEE应用大致上可分为如下三层:

  1)表现层

  2)业务逻辑层

  3)数据持久层

(3)轻量级JavaEE应用架构:

 

2.管理Hibernate的SessionFactory

(1)Spring的IoC提供用声明式的方式管理SessionFactory,还能为SessionFactory注入数据源引用;

(2)一旦在Spring的IoC容器中配置了SessionFactory Bean,它将随应用的启动而加载,并可以利用IoC容器的功能,将SessionFactory注入任何Bean中,比如DAO组件。一旦DAO组件获得了SessionFactory Bean的引用,它就可以完成实际的数据库访问;

(3)配置:

org.hibernate.dialect.MySQL5InnoDBDialect
true
true
update

 

3.实现DAO组件的基类

(1)使用Spring管理SessionFactory后就可以将SessionFactory注入应用的DAO组件中,Spring推荐使用SessionFactory的getCurrentSession()方法获取Hibernate Session,其余的持久化操作与直接使用Hiberntate持久化操作的代码基本相同;

(2)为了简化应用中各DAO组件的设计,程序考虑将所有的DAO组件都需要提供的方法提取出来,由一个BaseDap来实现,这样应用中的其他DAO组件只要继承BaseDao即可;

(3)通常来说所有的DAO组件都应该提供如下方法:

  1)根据ID加载持久化实体;

  2)保存持久化实体;

  3)更新持久化实体;

  4)删除持久化实体,以及根据ID删除持久化实体;

  5)获取所有的持久化实体;

  6)其他一些查询方法;

(4)BaseDao接口代码:

import java.io.Serializable;import java.util.List;public interface BaseDao
{ //根据ID加载实体 T get(Class
entityClazz,Serializable id); //保存实体 Serializable save(T entity); //更新实体 void update(T entity); //删除实体 void delete(T entity); //根据ID删除实体 void delete(T entity,Serializable id); //获取所有实体 List
findAll(Class
entityClazz); //获取实体总数 long findCount(Class
enetityClazz);}

 

(5)BaseDao实现类:BaseDaoImpl

4.传统的HibernateTemplate和HibernateDaoSupport

5.实现Dao组件

6.使用IoC容器组装各种组件

7.使用声明式事务

转载于:https://www.cnblogs.com/ljiwej/p/7280685.html

你可能感兴趣的文章
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
js对象属性方法
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
PHP队列
查看>>
程序代码记Log
查看>>
Maven安装配置
查看>>
ORA-10635: Invalid segment or tablespace type
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Windows 8 操作系统 购买过程
查看>>
软件工程课程-个人编程作业
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>
centos 引导盘
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
Apriori算法
查看>>
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>
Vue.js 基础学习之组件通信
查看>>