当前位置: 首页 > 图灵资讯 > 技术篇> 需要知道的java中iBatis持久层技术的四个问题

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

来源:图灵教育
时间:2023-04-04 10:30:57

  学习java时间长一点。java程序员大家一定都知道,iBatis是apache的开源项目,是开源项目中常用的持久层框架。iBatis最大的特点是体积小,启动快。如果不需要太多复杂的操作,iBatis是最简单的解决方案,既能满足要求,又能灵活。关于IBatis持久层技术,以下四个问题是最受关注和一些基本问题。请想学习IBatis持久层技术朋友们学好以下内容。

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

  在应用的java数据库在开发过程中,不可避免地会使用持久层框架。现在开源项目中使用最多的持久层框架iBatis,所以第二个需要知道的是IBatis持久层技术的问题就是jdbc、hibernate、ibatis有什么区别?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使用步骤是什么?这是最重要的知识。可分为三个步骤:(1)ibatis SQL Map 配置文件。基本配置所用数据库的连接,包括数据库驱动类型、用户名、密码和连接池的相关管理数据。(2)PO和映射文件。和hibernate一样,PO作为数据库关系表的影射,也需要响应的映射配置文件,可以手写或借助hibernate的相关工具生成PO,不会影响PO在ibatis中的使用。(3)编写DAO。

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