持久层框架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学习笔记是跟着传智播客的视频学习整理的,理解上难免有些错误,请以视频为根本,有些地方笔记中没有整理到,因为这是我之后看着自己做的工程项目总结的,和视频不完全一致。请谅解。
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学习笔记是跟着传智播客的视频学习整理的,理解上难免有些错误,请以视频为根本,有些地方笔记中没有整理到,因为这是我之后看着自己做的工程项目总结的,和视频不完全一致。请谅解。
相关文章推荐
- 持久层框架:ibatis学习心得,欢迎大家交流:wyf_cjl@sohu.com
- IBatis 这个框架想学习下,能推荐本书么?
- Hadoop之Pig框架学习(笔记17)
- SSM框架学习之高并发秒杀业务--笔记5-- 并发优化
- NIO通讯框架之阿堂教程:Mina学习笔记-中级进阶篇(二)
- Hadoop学习笔记:MapReduce框架详解
- 轻量级分布式任务调度框架XXL-JOB 学习笔记
- 黑马程序员---OC学习笔记之Foundation框架:NSString的基本使用
- Hadoop学习笔记—19.Flume框架学习
- 图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】
- Spring Boot 学习笔记 - 认识Spring Boot框架
- 黑马程序员——IOS学习笔记(Foundation框架(一))
- h5学习笔记:框架选择记录
- Java学习笔记33(集合框架七:Collections工具类)
- Yii框架学习笔记(二)将html前端模板整合到框架中
- AS3----Spring 框架学习笔记(二)----xml智能提示DTD文件
- Python框架之Django学习笔记(十二)
- 大数据学习笔记:YARN框架分析之事件的分发与状态机
- Django框架学习笔记(29.kindeditor插件使用)
- 黑马程序员_学习笔记框架(II)及工具类