动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

需要知道的java中iBatis持久层技术的四个问题

07-20 17:16 194浏览
举报 T字号
  • 大字
  • 中字
  • 小字

学习java时间长一点的java程序员肯定都知道,iBatis是apache的一个开源项目,是在开源项目中常用的持久层框架iBatis最大的特点就是小巧,上手很快,如果不需要太多复杂的操作,iBatis是既能满足要求又足够灵活的最简单的解决方案。关于iBatis持久层技术,下面这四个问题是关注度最高也是一些基本的问题,请想学习iBatis持久层技术的朋友学好下面的内容。

第一个问题,使用iBatis持久层技术的原因是什么?回答是(1只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。(2)开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现。(3)系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。

在应用的java数据库开发中,不可避免地会使用到持久层框架,现在开源项目中持久层框架用到最多的就有iBatis,所以第二个需要知道的iBatis持久层技术的问题就是jdbc、hibernateibatis之间的区别是什么?JBDC技术是手动写sql语句;delete、insert、update要将对象的值一个一个取出传到sql中,不能直接传入一个对象;select返回的是一个resultset,要从ResultSet中一行一行、一个字段一个字段的取出,然后封装到一个对象中,不直接返回一个对象。iBatis的特点是半自动化,sql是要要手动写;delete、insert、update直接传入一个对象;select也是直接返回一个对象就可以了。Hibernate是全自动,不写sql语句,自动封装;delete、insert、update:直接传入一个对象;select直接返回一个对象。

第三个问题是 Ibatis中“#”与“$”的区别是什么?可以分为一下五点:(1#”是把传入的数据当作字符串,如#field#传入的是id,则生成sql语句:order by "id"。(2$”传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,order by id .(3)“#”方式能够很大程度防止sql注入, 但“$”方式无法防止sql注入。(4$”方式一般用于传入数据库对象,例如传入表名。(5)一般能用#”的就别用“$”。

最后一个iBatis持久层技术的问题就是iBatis的使用步骤是什么?这是最重要的知识了。一共可以分为三个步骤:(1ibatis SQL Map 配置文件。文件中对所用数据库的连接做了基本配置,包括数据库驱动类型、用户名、密码,以及连接池的相关管理数据。(2PO和映射文件。和hibernate一样,PO作为数据库关系表的影射,也需要响应的映射配置文件,可以手写,也可以借助hibernate的相关工具生成PO,不会影响PO在ibatis中的使用。(3)编写DAO。

DAO中,可以使用SqlMapClient提供的方法来对应的指定对PO操作的SQL语句,从而使业务逻辑层的开发仍然是面向对象的操作。iBatis的着力点,在于POJO 与SQL之间的映射关系。相对Hibernate而言,iBATIS 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。

这四个问题是学习iBatis持久层技术必须知道的知识点,iBatis的开发者说,如果是开始一个新的项目,可以完全控制对对象模型和数据库的设计,Hibernate是一个不错的选择工具;而如果现在正在访问任何第三方数据库,一个O/R映射器可能不能处理的情况,这个时候iBatis技术就是很好的选择。

0人推荐
共同学习,写下你的评论
0条评论
冬雪秋黄
程序员冬雪秋黄

5篇文章贡献20165字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消