您的位置:首页 > 其它

iBatis框架使用 4步曲

2015-07-21 12:56 309 查看
iBatis是一款使用方便的数据访问工具,也可作为数据持久层的框架。和ORM框架(如Hibernate)将数据库表直接映射为Java对象相比,iBatis是将SQL语句映射为Java对象。相对于全自动SQLHibernate,iBatis允许你对SQL有完全控制权,可以视为半自动的数据访问工具。

iBatis的最大优点是简便,轻量级,仅需iBatis的一个jar和数据库的驱动即可运行,而且使用iBatis仅需掌握SQL和XML的用法即可,而不像Hibernate那样需要配置对象间的关系。学习iBatis的过程要比Hibernate快很多,在项目中,若人员水平不大一致时,使用iBatis代替Hibernate作为数据访问工具可以有效提升开发效率。

不管是iBatis还是Hibernate,都作为访问数据库的工具,它们必然基于JDBC而来,目的解决是JDBC程序开发的繁琐性和代码的冗余性(如加载驱动,建立连接,初始化语句对象,执行数据库操作,返回结果,关闭各个对象这一重复且无技术含量的过程)。

iBatis框架是Java持久层开发框架,说白了就是前人写了一部分代码(针对数据库操作),我们要做的就是再次开发,拿来框架直接使用。

我们自己开发时,dao层的sql语句都是写死在程序中的,如果查询条件改变什么的都需要修改sql语句,这样就得去修改原代码,违背了开发原则中的开闭原则。有没有一种实现让sql不再写死在程序里,iBatis框架就可以使sql文活起来。

iBatis是一个开源的项目,有兴趣的可以去看看那些元老级的人物是怎么将封装的框架。本文旨在介绍它的使用。

第一步:搭建环境

所谓的搭建环境就是拷贝iBatis的jar包到我们的项目中。这样我们就可以使用框架中的相关类啦。

由于iBatis是数据库方面的操作,所以还有添加数据库方面的jar包,我用的是oracle的数据库,所以得到oracle的安装目录下面去找链接数据库的ojdbc6.jar

第二步:编写实体类和dao层接口及实现

这里需要做的就是将数据库的表对应封装成对象实体,定义Dao层的接口和实现,接口的具体实现这里不需要写,只需要把类准备出来,把接口准备出来就可以拉。

第三步:拷贝xml文件

将iBatis中的两个xml文件拷贝到项目中(下载的iBatis资料中会有相应的jar包和简单的例子,例子中有xml文件),一个是SqlMapConfig.xml是完成数据库配置的文件,另一个是实体类对应的xml文件,本文以User.xml为例。

需要注意的是这两个文件所放的位置,一般都是将SqlMapConfig.xml文件拷贝到项目的根目录下面,放在src下,实体类对应的xml文件跟对应的实体放在一块就行了。

一个系统中就只有一个SqlMapConfig.xml文件,文件的名称可以更改,是数据库配置文件,文件内容参考如下:

[html] view
plaincopyprint?





<?xml version="1.0" encoding="UTF-8" ?>



<!DOCTYPE sqlMapConfig

PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">



<sqlMapConfig>

<transactionManager type="JDBC" commitRequired="false">

<dataSource type="SIMPLE">

<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>

<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:Orl"/>

<property name="JDBC.Username" value="scott"/>

<property name="JDBC.Password" value="tiger"/>

</dataSource>

</transactionManager>



<sqlMap resource="com/ibatis/bean/User.xml"/>



</sqlMapConfig>

实体类的配置文件则有多个,是和实体类对应的。内容参考如下:

[html] view
plaincopyprint?





<?xml version="1.0" encoding="UTF-8" ?>



<!DOCTYPE sqlMap

PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-2.dtd">



<sqlMap>



<!--起别名-->

<typeAlias alias="UserType" type="com.ibatis.bean.User"></typeAlias>



<!--insert操作,parameterClass为参数的类型-->

<insert id="insertUserID" parameterClass="UserType">

insert into t_user (

username,

userpswd)

values (

#username#, #userpswd#

)

</insert>

<delete id="deleteUser" parameterClass="java.lang.String">

delete from t_user where username=#username#

</delete>

</sqlMap>

第四步:编写dao层接口实现

用了框架后,实现类中就没有sql语句了,在上面参考代码中看到,sql语句都配置到对应的实体类对应的配置文件中拉,这样实现类的代码就会变得很简单,如下:



这样就可以实现对User的添加和删除了,如果此时还不放心,可以添加个测试类测试一次。



使用框架,前提配置工作一定要做好。主要在配置文件上面。一定要仔细。

版权声明:本文为博主原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: