zoukankan      html  css  js  c++  java
  • 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外面,实现事务的管理。对于事务这边的东西,去放到业务逻辑层好了!

  • 相关阅读:
    1-15-2-RAID1 企业级RAID磁盘阵列的搭建(RAID1、RAID5、RAID10)
    1-15-1 RAID磁盘阵列的原理和搭建
    伪随机数算法(一)
    Swing---WindowConstants
    cmd_ping命令
    开灯问题
    freopen()函数
    Beginning Python Chapter 3 Notes
    Beginning Python Chapter 2 Notes
    String | StringBuffer | StringBuilder 比较
  • 原文地址:https://www.cnblogs.com/myadmin/p/4759586.html
Copyright © 2011-2022 走看看