接口绑定
随着Java 5的推广,我们有机会来改善用户体验。其中最重要的是借助Java 5可以消除令人生惑的类型转换,可以消除SQL映射基于字符的调用方式。举例来说,现在在调用SQL映射的时候是这样的:
Employee employee = (Employee)sqlMapper.queryForList("getEmployee", 5);
//...and...
List employees = sqlMapper.queryForList("listAllEmployees");
问题是很明显的。第一,上面的两个例子中被映射的语句的名称都是基于字符串的,而这很容易导致错误。这种方式也不会得到IDE工具、编译器的支持和管理。
第二个问题是存在参数和返回值类型安全问题。在第一个例子中,谁能保证参数的类型一定是Integer?而谁又能保证您得到的返回值一定是Employee类型呢?这里,编译器也不会给出任何偿错误报告和提示。而只有运行时异常会被抛出。
最后,在集合的例子中问题也是相同的。在运行前,您可能会获得Dogs的集合,而不是Employees。
总之,这种方式虽然比JDBC强,但是也让人倍感难受,还是存在改善的空间。
在Java 5中我们可以充分使用范型来规范集合类型。这样,我们不需要进行特殊的配置就可以为集合类型建立一致的API。我们不需要在XML文件中声明类型,不需要 通过字符名称来调用被映射的语句,相反,我们可以充分利用表达好且类型安全的接口类型。没有什么新东西需要学习,只是普通的接口就可以了。
public interface EmployeeMapper
{
Employee getEmployee (int employeeId);
List listAllEmployees();
}
这就够了!iBATIS来帮我们实现这个接口。
现在我们可以以一种更加简洁和安全的方式来调用被映射的语句了。
Employee emp = empMapper.getEmployee(5);
//...and...
List employees = empMapper.listAllEmployees();
在上面的调用中没有类型转换、没有字符串,而且参数和返回值的类型是、安全的。额外的代码就是针对接口使用XML或者Java的标识进行配置。最多我们只需要配置SQL语句、需要进行重载的参数或者返回值类型。
接口描述了所需要的一切。
- 语句的名称(默认情况下与方法的名字一致)
- 参数类型(如果存在的话)
- 返回值类型(包括范型集合的元素的类型)
而其中最有趣的就是我们可以基于方法名称这样的约定来生成SQL映射。以后关于配置的章节中将详细讨论这些细节。
接口绑定的方法使得诸如Spring这样的框架将映射类注入其他类变得容易,同时也不需要将事务管理的过多细节公开。
分享到:
相关推荐
ibatis3.0的中文版文档,pdf格式,很适合ibatis学习使用
Ibatis3.0 增删改查(三) Ibatis3.0 增删改查(三),包含jar包和建表语句。sql建表语句在WEBROOT下面
ibatis3.0,jsp,有数据库脚本。
ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法
由ibatis3.0(mybatis3.0)官网下载示例代码
官网下的,但是不兼容spring 3.0.1
Ibatis3.0 增删改查(二) Ibatis3.0 mybatis 增删改查(二),包含jar包和建表语句。sql语句在log文件夹下面
ibatis3.0中文文档和英文文档
NULL 博文链接:https://king2009163-163-com.iteye.com/blog/657629
介绍了ibatis3.0的配置技巧,包括比较复杂的sql语句的写法。
Ibatis3.0 spring2.5 strut2
折腾了好几天,终于从零开始把spring mvc 3.0 + ibatis 3.0 (基于oracle)的Demo完全跑通了。Demo中有不少注释,使用的jar包基本是最精简的了。留着做个备用,也给大家一个参考!
IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习IBatis3.0学习
ibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zip
NULL 博文链接:https://yelifei94.iteye.com/blog/1122909
该文件是一个完整的Spring3.0+Ibatis+Oracle全注解式开发项目,里面详细的介绍了注解的使用,注解描述很全,下载就可以导入到您的myeclipse中运行,很好的Spring注解开发小项目
NULL 博文链接:https://jinyike.iteye.com/blog/715697
MyIbatis3.0入门+进阶实例,直接把资源工程导入到MyEclise里就可以运行,导入到Eclipse里也可以, 包含: ---ibatis_3_学习笔记.pdf ---ibatis3__发布_入门示例.pdf 可以带你熟练使用MyIbatis3.0,实例代码对MyIbatis3.0...
Ibatis和Spring整合例子,实现增删改查功能.