接口绑定
随着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这样的框架将映射类注入其他类变得容易,同时也不需要将事务管理的过多细节公开。
分享到:
相关推荐
iBatis 3.0推崇Mapper接口编程,每个Mapper接口对应一个XML映射文件,如`persistence-mappings.xml`。XML文件中定义了SQL语句和结果映射,而接口方法则对应XML中的SQL ID。这种方式使得Java代码与SQL分离,易于维护...
Ibatis3.0是Mybatis的前身,它提供了一种灵活的方式来映射SQL语句,使得数据库交互变得更加简单。在这个“增删改查(二)”的主题中,我们将继续上一部分的内容,详细介绍如何执行数据库的基本操作。 首先,我们...
《深入解析iBatis核心库:ibatis-core-3.0.jar》 iBatis,一个优秀的持久层框架,以其轻量级、易用性、灵活性等特性深受开发者喜爱。在Java开发领域,iBatis作为数据访问层的解决方案,为数据库操作提供了强大的...
`ibatis-core-3.0.jar`是MyBatis的核心库文件,包含了MyBatis框架的主要功能。`org.apache.ibatis.annotations.Param`是MyBatis中的一个重要注解,用于处理方法参数映射。 `@Param`注解主要用于SQL查询中的动态参数...
5. **接口(Interfaces)和实现(Implementations)**:在 iBatis 2 中,SQLMap 文件与 DAO 类紧密耦合。Mybatis 3 引入了基于接口的映射,将 SQL 映射与具体的 DAO 实现分离,提高了可测试性和可维护性。 6. **...
- 面向接口编程:通过iBATIS的接口方式,你可以编写干净的业务层代码,避免与具体实现绑定。 总之,Spring 3.0+iBATIS+Oracle的组合提供了强大的功能,帮助开发者快速、高效地构建健壮的Java Web应用。通过注解,你...
对于“ibatis-core-3.0”这个jar包,它应该包含了Ibatis的核心实现类、接口以及必要的依赖,是使用Ibatis框架的基础。在项目中,我们需要将这个jar包添加到类路径下,才能正常使用Ibatis的功能。同时,根据实际需求...
ibatis-3-core-3.0.0.190.jar是iBATIS的主要运行库,包含了iBATIS框架的所有核心类和接口,如SqlSession、SqlSessionFactory、Executor等。这些是使用iBATIS进行数据库操作的基础组件。SqlSession代表一次数据库会话...
其次,iBatis(现更名为MyBatis)是一个持久层框架,它简化了SQL与Java代码的绑定,允许开发者编写动态SQL来操作数据库。iBatis2.3.4.7版提供了一种灵活的映射机制,可以将SQL查询结果直接映射到Java对象,避免了...
此外,Ibatis还支持接口绑定,通过注解或者XML映射文件,可以将SQL语句与Service接口的方法直接关联,使得业务代码更加简洁。 总结一下,Ibatis的jar文件包含了核心运行时库,这些库实现了Ibatis的所有功能,如SQL...
1. 引入依赖:在项目中添加 iBATIS 相关 jar 包(如 ibatis-core-3.0.jar、ibatis-sqlmap-2.3.0.jar、spring-ibatis-2.0.8.jar),现在通常通过 Maven 或 Gradle 进行管理。 2. 配置 SpringMVC:编写 web.xml,配置 ...
Ibatis支持多种参数绑定方式,如#{param}(预编译参数)、${param}(字符串替换)等。结果映射可以自动将数据库结果转换为Java对象。 7. **缓存机制** Ibatis提供了一级和二级缓存,一级缓存默认开启,存在于...
iBatis3通过动态代理将接口方法调用转化为对XML文件中SQL的执行,实现了Java方法与SQL的绑定。 除此之外,iBatis3还提供了事务管理、缓存机制、参数映射和结果映射等功能。其中,参数映射允许我们将Java对象的属性...
4. **注解支持**: 除了XML配置,MyBatis 3.0引入了注解,可以直接在Mapper接口方法或实体类上使用注解来声明SQL语句和映射规则。这种方式更加简洁,适合小型项目或快速开发。 5. **动态SQL**: MyBatis的动态SQL功能...
Spring核心jar包含了BeanFactory和ApplicationContext接口,它们是管理对象生命周期和装配的中心。BeanFactory负责创建和管理对象,而ApplicationContext则添加了对国际化、事件传播以及资源访问的支持。 2. **...
Mapper XML 文件是SQL语句的容器,而Mapper接口则在Java代码中与XML文件中的SQL进行绑定。 创建一个简单的iBatis实例,你需要以下步骤: 1. **环境准备**:确保你的项目已经集成了iBatis的相关依赖,这通常通过...
在IT领域,iBATIS作为一个轻量级的持久层框架,曾广泛应用于Java项目中,尤其是在它升级到3.0版本后,其功能和性能都有了显著提升。这篇手记将深入探讨iBATIS 3的关键特性,包括动态SQL、映射文件的改进以及与Spring...
Spring 3.0还可能包含其他的依赖库,如JDBC驱动、ORM框架(Hibernate、iBatis)、Quartz调度器等,它们共同构成了一个完整的Java企业级开发环境。 5. **集成与互操作性** Spring 3.0加强了与其他流行框架和库的...
Spring 3.0是其生命周期中的一个重要版本,引入了许多新特性,如Spring 3 MVC、数据绑定增强、JSR-303验证支持等,提升了开发效率和应用的可扩展性。 **iBatis 2.3.4** 是一个SQL映射框架,它将SQL语句与Java代码...