JDBC、Hibernate、Mybaites处理数据的流程及对DAO的理解
以查询一个用户信息(id,name)为例:
JDBC
1. 获取一个connection
2. 生成一个statement
3. 拼接SQL语句
4. 查询对象,获取结果集(假设已经找到我们需要的对象)
5. 读取结果集信息,封装成需要的用户对象
6. 关闭结果集,statement,connection
Hibernate
1. 建立用户信息对象,并配置好对象关系映射
2. 获取一个Session对象
3. 生产一个Query对象
4. 编写HQL语句
5. 执行Query.list()方法,获取对象信息(这里Hibernate框架根据映射关系,完成对象与关系之间的转换)
6. 关闭Session对象
Mybaties
1. 编写PO对象,配置sqlMap文件
2. 生成SqlMapClient对象
3. 操作对应的SQL,返回结果(sql语句,我们写的配置文件中,对象封装由Ibatis框架完成)
4. 关闭SqlMapClient
DAO理解
DAO层处理的应该是对象关系相互转换的工作,它需要的是一个连接对象,但是它不关心这个对象怎么来,而且不关心在转换工作完成后,做怎么样的处 理。就像Ibatis框架似的,它在项目就充当着DAO的作用,因为我们通过配置文件和实体对象我们已经完成了对象关系的转换。而针对JDBC和 Hibernate技术,我个人觉得,我们可以把一个连接作为参数传递到DAO,以避免我们为DAO的每个方法中都获取一个连接对象,这样我们就可以不用 在DAO中处理数据库连接的打开和关闭了,从何在DAO外面,实现事务的管理。对于事务这边的东西,去放到业务逻辑层好了!
JDBC、Hibernate、Mybaites处理数据的流程及对DAO的理解的更多相关文章
- Hibernate3回顾-5-简单介绍Hibernate session对数据的增删改查
5. Hibernate对数据的增删改查 5.1Hibernate加载数据 两种:get().load() 一. Session.get(Class arg0, Serializable arg1)方 ...
- hibernate导入大量数据时,为了避免内存中产生大量对象,在编码时注意什么,如何去除?
Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); for ( i ...
- JDBC&Hibernate
当数据库有大量用户来访问要采取什么技术解决 可以采用连接池: 什么是ORM 对象关系映射(Object Relational Mapping 简称ORM)是一种为了解决面向对象与面向关系数据库存在的互 ...
- 【Spring Boot】使用JDBC 获取相关的数据
使用JDBC 获取相关的数据 什么是JDBC Java Database Connectivity 是一种用于执行SQL语句的Java API,与数据库建立连接.发送 操作数据库的语句并处理结果. S ...
- Java面试题 OOAD & UML+XML+SQL+JDBC & Hibernate
二.OOA/D 与UML 部分:(共6 题:基础2 道,中等难度4 道) 96.UML 是什么?常用的几种图?[基础] 答:UML 是标准建模语言:常用图包括:用例图,静态图(包括类图.对象图和包图) ...
- Hibernate上传数据到数据库,从数据库读取数据到本地模板代码
1.Hibernate上传数据到数据库: //创建一个session对象 Session session1=HibernateTools.getSession(); //Fenciresult数据库表 ...
- HBase 数据读写流程
HBase 数据读写流程 2016-10-18 杜亦舒 读数据 HBase的表是按行拆分为一个个 region 块儿,这些块儿被放置在各个 regionserver 中 假设现在想在用户表中获取 ro ...
- 使用JDBC处理Oracle大数据
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
- 利用jdbc处理oracle大数据---大文件和二进制文件
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
随机推荐
- 深入分析iSCSI协议的应用
深入分析iSCSI协议的应用 1 引言 快速增长的存储容量使得企业需要采用网络存储解决方案.目前网络存储技术采用的连接技术主要有光纤通道和TCP/IP.基于IP的网络存储能解决基于光纤通道的网络存储中 ...
- cocos2d-x 使用UIWebView加载网页(顺便可以看到如何用OC调C++)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=248 前段时间项目中要微博授权登 ...
- [C# 网络编程系列]专题十:实现简单的邮件收发器
转自:http://www.cnblogs.com/zhili/archive/2012/09/24/2689892.html 引言: 在我们的平常工作中,邮件的发送和接收应该是我们经常要使用到的功能 ...
- (转载)PHP获取客户端、PHP获取服务器相关信息
(转载)http://www.php100.com/html/webkaifa/PHP/PHP/2009/1027/3446.html 服务器变量 $_SERVER 详解: 1.$_SESSION[' ...
- Delphi TcxTreelist 表格左边总是缩进去 ,好像有偏移 解决方法
1. TcxTreelist的表格总是总是缩进去,如下效果 : 但是,新建一个没有偏移 ,经过观察,原来在 属性Images造成的, 把imgToolbars去除就可以了. 效果:
- 转载--C语言运算符优先级和口诀
转载:http://www.cnblogs.com/zhanglong0426/archive/2010/10/06/1844700.html 一共有十五个优先级: 1 () [] . -& ...
- 基于Noootes/Dooomino的文档工作流系统(转)
(流程样例应用程序终于整理上传好可供下载了http://download.csdn.net/download/starrow/8422299) 上文分析了我们的流程配置使用三类对象,分别对应三类文档: ...
- datatables配置及数据传输
var merchant_url = "index.php?op=merchant"; var table_merchant_setting ={ "ajax" ...
- HDOJ/HDU 1161 Eddy's mistakes(大写字母转换成小写字母)
Problem Description Eddy usually writes articles ,but he likes mixing the English letter uses, for e ...
- poj 3237 Tree(树链剖分,线段树)
Tree Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 7268 Accepted: 1969 Description ...