iBatis框架使用 4步曲
iBatis是一款使用方便的数据訪问工具,也可作为数据持久层的框架。和ORM框架(如Hibernate)将数据库表直接映射为Java对象相比。iBatis是将SQL语句映射为Java对象。
相对于全自己主动SQL的Hibernate,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文件。文件的名称能够更改,是数据库配置文件,文件内容參考例如以下:
- <?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>
实体类的配置文件则有多个。是和实体类相应的。
内容參考例如以下:
- <?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语句都配置到相应的实体类相应的配置文件里拉,这样实现类的代码就会变得非常easy。例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlzaHVhbmd6aGU3MDQ3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="border:none; max-width:100%">
这样就能够实现对User的加入和删除了,假设此时还不放心。能够加入个測试类測试一次。
使用框架,前提配置工作一定要做好。主要在配置文件上面。一定要细致。
版权声明:本文为博主原创文章。未经博主同意不得转载。
iBatis框架使用 4步曲的更多相关文章
- Membership三步曲之进阶篇 - 深入剖析Provider Model
Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...
- Membership三步曲之入门篇 - Membership基础示例
Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ...
- iBatis框架基本使用
iBatis框架是Java持久层开发框架,说白了就是前人写了一部分代码(针对数据库操作),我们要做的就是再次开发,拿来框架直接使用. 我们自己开发时,dao层的sql语句都是写死在程序中的,如果查询条 ...
- [转]Membership三步曲之入门篇 - Membership基础示例
本文转自:http://www.cnblogs.com/jesse2013/p/membership.html Membership三步曲之入门篇 - Membership基础示例 Members ...
- ASP.NET 安全系列 Membership三步曲之入门篇 - Jesse Liu
Membership 三步曲 ASP.NET 安全系列 Membership三步曲之入门篇 ASP.NET 安全系列 Membership三步曲之进阶篇 ASP.NET 安全系列 Membership ...
- iBatis框架batch处理优化 (转)
为什么要做batch处理 这个问题我就不解释了,因为我想你们肯定能比我解释的更好!如果你真的不知道,那就到Google上去搜索一下吧☻Oracle回滚段 这个问题偶也不很明白,只是 ...
- Java EE注册三部曲(一步曲)
一步曲(html+servlet+SQL+Bean+Dao+加密(Base64)) 设计思路: 1:编写前台页面jsp:register.jsp,使得用户能够实行注册操作 2:编写servlet:re ...
- 第七章 new的三步曲
这章是本系列文章的重点,这章揭示了js对象的真正本质 看下面的事例 var a = new b(); 等价于 ①var a={}; ②a.__proto__=b.prototype; ③b.call( ...
- iBatis框架简介
一.为啥使用iBatis? 在 Hibernate.JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择.即使在持久层框架层出不穷 ...
随机推荐
- 联想lenovo 家用电脑安装win7 无法引导问题(新电脑安装系统时提示File:\Boot\BCD错误解决方案)
安装方式 : 1.进入 PE 2.用 EasyimageX 恢复 GHO镜像 3.重启后出现 原因: 主要 是安装win7 时,格式 化选择为GUID模式. 处理: win7 以后,格式华时选择MB ...
- java中的json
josn: 一种数据传输格式,与开发语言无关,轻量级 一开始是javaScript的,但是后面比较流传,几乎所有语言都有相应的使用API 数据结构: Object---对象 使用花括号{}包含的键值对 ...
- while循环,格式化输出%,运算符,数据类型的转换,编码的初识,
1.内容总览 while循环 格式化输出 运算符 and or not 编码的初识 2. 具体内容 while 循环 where:程序中:你需要重复之前的动作,输入用户名密码时,考虑到while循环. ...
- [USACO16DEC]Cities and States省市
题目:洛谷P3405. 题目大意:给你一些省市的名称(大写)和所在省的名称(两个大写字母),求有多少对城市满足:A城市的名字的前两个字母等于B城市所在省的名称,且A所在省的名称等于B城市的名字的前两个 ...
- c++PrimerChap8IO库
#include<iostream> #include<fstream> #include<string> using namespace std; int mai ...
- 如何配置任意目录下Web应用程序
1,首先创建一个Web项目,tomcat 7, JDK 1.8 2,创建Web项目并部署到tomcat服务器下运行的步骤和方法: 在Eclipse下创建一个JAVA project 在JAVA项目下创 ...
- redis为什么选择单线程工作模型
1.先说一下为什么出现进程,线程 进程:在计算机发明之初就发现,在输入数据时(I/O速度慢),CPU是空闲的,这样就浪费了CPU资源,为了充分利用CPU资源,发明了进程,在输入程序A的数据时,程序B在 ...
- 个人创业了,做了个网站和App,www.91tianwu.com
大家好! 很久没有写文章了,响应党和政府号召,创业了.此文为了推广我的网站而写,希望有兴趣的看看. 我做了添物网,地址:http://www.91tianwu.com. 主要做购物导航推荐,目前集中在 ...
- 获取系统信息(CPU、内存等)
简述 获取计算机CPU.主板.内存.硬盘.网卡这些信息,Qt中没有相应的处理,所以需要根据平台来做差异化处理.也许Qt为了跨平台,没有提供与操作系统和硬件密切相关的一些功能(如内存.CPU.硬盘等相关 ...
- hadoop-01-ssh无密登录配置
1,分配master机器2台,slave机器5台: 2,在全部机器上面配置/etc/hosts设置 3,全部机器上面进行ntp设置:TODO 4,在master机器上面: 不要用root登录 1) s ...