iBATIS接口应用的浅析
创始人
2024-04-17 04:20:56
0

iBATIS接口应用的由来,随着Java 5的推广,我们有机会来改善用户体验。其中最重要的是借助Java 5可以消除令人生惑的类型转换,可以消除SQL映射基于字符的调用方式。举例来说,现在在调用SQL映射的时候是这样的:

  1. Employee employee = (Employee)sqlMapper.queryForList("getEmployee", 5);  
  2. //...and...  
  3. List employees = sqlMapper.queryForList("listAllEmployees"); 

问题是很明显的。***,上面的两个例子中被映射的语句的名称都是基于字符串的,而这很容易导致错误。这种方式也不会得到IDE工具、编译器的支持和管理。

第二个问题是存在参数和返回值类型安全问题。在***个例子中,谁能保证参数的类型一定是Integer?而谁又能保证您得到的返回值一定是Employee类型呢?这里,编译器也不会给出任何偿错误报告和提示。而只有运行时异常会被抛出。

***,在集合的例子中问题也是相同的。在运行前,您可能会获得Dogs的集合,而不是Employees。

总之,这种方式虽然比JDBC强,但是也让人倍感难受,还是存在改善的空间。

iBATIS接口应用在Java 5中我们可以充分使用范型来规范集合类型。这样,我们不需要进行特殊的配置就可以为集合类型建立一致的API。我们不需要在XML文件中声明类型,不需要 通过字符名称来调用被映射的语句,相反,我们可以充分利用表达好且类型安全的接口类型。没有什么新东西需要学习,只是普通的接口就可以了。

  1. public interface EmployeeMapper   
  2. {    
  3.   Employee getEmployee (int employeeId);    
  4.   List listAllEmployees();  

这就够了!iBATIS来帮我们实现这个接口。

现在我们可以以一种更加简洁和安全的方式来调用被映射的语句了。

  1. Employee emp = empMapper.getEmployee(5);  
  2. //...and...  
  3. List employees = empMapper.listAllEmployees(); 

在上面的调用中没有类型转换、没有字符串,而且参数和返回值的类型是、安全的。额外的代码就是针对接口使用XML或者Java的标识进行配置。最多我们只需要配置SQL语句、需要进行重载的参数或者返回值类型。

接口描述了所需要的一切。

语句的名称(默认情况下与方法的名字一致)

参数类型(如果存在的话)

返回值类型(包括范型集合的元素的类型)

而其中最有趣的就是我们可以基于方法名称这样的约定来生成SQL映射。以后关于配置的章节中将详细讨论这些细节。

iBATIS接口绑定的方法使得诸如Spring这样的框架将映射类注入其他类变得容易,同时也不需要将事务管理的过多细节公开。

那么以上就是iBATIS接口应用方面的简单介绍,希望对你有所帮助。

【编辑推荐】

  1. iBATIS分页源码真相探讨
  2. iBATIS教程之入门浅析
  3. Hibernate与iBATIS的较量浅析
  4. iBATIS实例创建的五大步浅析
  5. iBATIS with MapBean应用浅析

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...