持久层框架iBatis学习笔记

 

1.ibatis简介

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

这篇iBatis学习笔记是跟着传智播客的视频学习整理的,理解上难免有些错误,请以视频为根本,有些地方笔记中没有整理到,因为这是我之后看着自己做的工程项目总结的,和视频不完全一致。请谅解。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值