您的位置:首页 > 其它

持久层框架iBatis学习笔记

2011-06-15 15:35 316 查看
1.ibatis简介
iBatis是apache的一个开源项目,一个O/R Mapping解决方案,iBatis最大的特点就是小巧,上手很快,如果不需要太多复杂的操作,iBatis是能满足你的要求又足够灵活的最简单的解决方案,官方网站是: http://iBatis.apache.org/

2. 搭建环境:导入相关就的jar包



3. 配置文件:

(1)jdbc连接的属性文件
driver :com.microsoft.sqlserver.jdbc.SQLServerDriver (SQL server)
url : jdbc:sqlserver://localhost:1433;DatabaseName=iBatis
username : sa
password : 123
(2)总配置文件(SqlMapConfig.xml)
<?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>
<properties resource="SqlMap.properties" />
<!-- 使用的驱动管理器-JDBC -->
<transactionManager type="JDBC">
<!-- 配置数据源 -->
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}"/>
<property name="JDBC.Username" value="${username}"/>
<property name="JDBC.Password" value="${password}"/>
</dataSource>
</transactionManager>

<!-- 实体映射文件 -->
<sqlMap resource="cn/zbvc/domain/Student.xml" />
</sqlMapConfig>



(3)关于每个实例的映射文件(map文件)

<?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>
<resultMap id="StudentResult" class="Student">
<result property="id" column="id" />
<result property="name" column="name" />
</resultMap>
</sqlMap>

4.执行过程概述(无其它框架整合时)

当调用持久化层方法的时候:
1.首先加载ibatis总配置文件,
2.总配置文件完成以下任务:
(1)加载驱动,连接数据库
(2)配置各实体映射文件
3.当对增删改查方法进行操作时,先生成用于数据库操作的sqlMapClient对象,执行其相关方法,调用实体映射文件中的sql语言(参数类型,返回类型在Mapping文件中需指定)

5.完成一个简单的CRUD iBatis应用

(1)搭建iBatis环境(导包略)
SqlMapConfig.xml:总配置文件



加载驱动的资源文件



(2)创建持久层接口和实现类



(3)创建模型层Bean 和映射文件bean.xml





注:在映射文件中,使用了标签<typeAlias>作用是将频繁操作的类简单话,即之后要多次使用到Studetn类,包括参数类型和返回类型,所以在这里使用这个标签将其包下的Student类简单化为Student,在以后的调用,就直接应用这个id就可以了。

(4)在实现类中写一个static方法进行一次性加载配置文件



(5)具体CRUD方法实现代码:
A.查询所有的学生信息



映射文件中的sql语句
<select id="selectAllStudent" resultClass="Student">
select * from student
</select>

B.根据id查询学生信息



<select id="selectStudentById" parameterClass="int" resultClass="Student">
select * from student where id = #id#
</select>

C.根据姓名查询学生信息



<select id="selectStudentByName" parameterClass="String" resultClass="Student">
select * from student where name = #name#
</select>

D.增加学生信息



<insert id="addStudent" parameterClass="Student">
insert into student(
name
)
values(
#name#
)
</insert>

E.根据id删除学生




<delete id="deleteStudentById" parameterClass="int">
delete from student where id = #id#
</delete>

F.更新学生信息



<update id="updateStudent" parameterClass="Student">
update student set name=#name# where id=#id#
</update>

6.测试:



注:这里使用了JSON的格式化,暂且不必考虑,不影响其结果,其它测试方法省略。

测试结果:



7.和Spring框架整合,完成MVC设计结构

(1)导入相关架包(有些包是json的不必管它)



(2)创建Spring配置文件beans.xml:实例化各组件对象,依赖注入



(3)创建业务逻辑层接口和实现类(和持久层差不多,所以略)
(4)测试(略)

8.总结反思

iBatis是一套简单易学的持久层框架,应用范围也比较广发,与jdbc相比,简化了JDBC的百分之61的代码量,将Sql语言与java程序分离,便于维护和开发,ORM关系映射上比JDBC更加容易更加方便这些有点足以让我们感受到iBatis的强大。与Hibernate相比,虽然没有Hibernate的功能强大,但也有很多优势,对数据库的复杂操作,sql语言的效率更高,这一点是Hibernate是所不及的。

总之,学习iBatis是非常容易上手的,有过sql和Hibernate的基础,我跟着传智播客的视频学了几个小时就掌握了iBatis的核心操作。当然iBatis还有一些更深层的原理与更强大的功能,我没有去深思,学了iBatis对以后学习其它持久层框架是有很多好吃的。希望看到我的这篇学习笔记的同学们也一起学习iBatis。

这篇iBatis学习笔记是跟着传智播客的视频学习整理的,理解上难免有些错误,请以视频为根本,有些地方笔记中没有整理到,因为这是我之后看着自己做的工程项目总结的,和视频不完全一致。请谅解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: