一、 介绍:

相对于Hibernate和Apache OJB等“一站式”ORM解决方案而言,IBatis是一种“半自动化”的ORM实现。

这个框架将让你能够更好的在JAVA应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是SQL Maps,另一个是Data Access Objects。另外还包括一些可能很有用的工具。

SQL Maps:

Sql Maps是这个框架中最激动人心的部分,它是整个iBATIS Database Layer的核心价值所在。通过使用Sql Maps你可以显著的节约数据库操作的代码量。SQL Maps使用一个简单的XML文件来实现从javaBean到SQL statements的映射。跟其他的框架或者对象映射工具相比,SQL Maps最大的优势是简单。它需要学习的东西很少,在连接表或复杂查询时也不需要复杂的scheme(怎么翻complex scheme?),使用SQL Maps, 你可以自由的使用SQL语句。

Data Access Objects (DAO)

当我们开发灵活的JAVA应用时,有一个好主意就是通过一个通用API层把实体操作的细节封装起来。Data Access Objects允许你通过一个简单接口的来操作数据,从而隐藏了实现的细节。使用DAO,你可以动态配置你的应用程序来访问不同的实体存储机制。如果你有一个复杂的应用需要用到几个不同的数据库,DAO可以让你建立一个一致的API,让系统的其他部分来调用。

Utilities

iBATIS Database Layer包含一系列的有用的工具,比如SimpleDataSource,JDBC DataSource 2.0(也包括3.0)的一个轻量级实现。ScriptRunner也提供了从单元测试到自动发布的数据库准备工作。

工作流程:

SQL Maps提供一个简单的框架,通过XML描述来映射JAVABeans,MAP implementations甚至原始类型的包装(String,Integer等)到JDBC PreparedStatement。想法很简单,基本的步骤如下:

1) 提供一个对象作为参数(either a JavaBean, Map or primitive wrapper),The parameter object will be used setting input values in an update statement, or query values in a where clause (etc.).(感觉不译为好,你说呢?)

2) 执行这个映射的statement,这一步是魔术发生的地方。SQL Maps框架将建立一个PreparedStatement实例(instance),使用前面提供的对象的参数,执行statement,然后从ResultSet中建立一个返回对象。

3) 如果是Update,则返回有多少行修改了,如果是查询,则返回一个对象或者对象的集合。跟参数一样,返回对象也可以是一个JAVABEAN,MAP或者一个primitive type wrapper。

流程图如下:

二、 现在介绍使用IBatis的配置文件:

SQL Map的配置文件。这个文件是SQL Map实现的根配置,这不是本总结所要具体描述的。

配置文件是XML文件,我们用它来配置属性,JDBC DataSources 和 SQL Maps。它给我们一个便利的地方可以集中配置不同的DataSource。这个框架支持iBATIS SimpleDataSource, Jakarta DBCP (Commons),以及其他任何可以通过JNDI context来访问的DataSource。我们在以后将详细讨论这个问题。现在我们用Jakarta DBCP,结构很简单,上面这个例子,它的配置文件如下。

元素:

这SQL Map中的元素支持SQL Map XML配置文件。配置文件里的元素符合Data Map规则。如下图:

所应用的文件里的元素必须和里的元素相对应。下面是SqlMapConfigExample.properties 文件的内容。里面的元素和里的元素相对应。

元素

maxRequests:在同一时间内能执行SQL语句的次数

maxSession:在同一时间内能起作用的Session数

maxTransaction:在同一时间内能执行的事务。

statementCacheSize:缓冲区的大小

三、 现在介绍操作IBatis的方法:

注意:本总结适合有使用开发IBatis基础的人员参考。由于本人的能力有限,不足之处请大家指出。

1. statement支持元素及支持的属性:

1.1 ID

ID属性是必须的,它表示这个语句的名称,它在整个元素内唯一的。在代码通过ID来引用相关语句。

1.2 parameterMap

parameterMap属性定义了一个有序的值列表,分别有序的对应了标准参数化的SQL语句中的?占位符。

1.3 parameterClass

在没有指明parameterMap属性的情况下,你可以指定parameterClass属性方法来替代parameterMap属性。parameterClass属性的值可以使用类型的别名或者类型(类)全称

1.4 resultMap

resultMap可以让你控制你如何让数据从查询结果(ResultMap)中提取出来存入java对象中。并且可以定义如何将字段映射到java bean的属性里。如下图:

1.5 resultClass

在resultMap属性没有指定的情况下,可以采用resultClass方式,resultClass的属性值可采用类型别名或者类型(Class)全称的方式。指定的类将根据数据库的元数据自动的映射到查询结果的字段值中。

2. ParameterMap元素属性

2.1 ID

ID属性是必须的,它提供了对元素Data Map里的唯一表示符

2.2 Class

Class属性是可选的,Class属性必须是JavaBean或Map实列,Class属

性虽是可选的,但推荐大家指定,Class属性 可以用来验证传入的参数的合法性及优化查询

3. 查询语句

3.1 屏蔽特殊符

3.2 语句导入 ,可以是语句优化

使用方法,上面的语句可以写成:

4.自增长方法:,不管处于该语句的什么部位,都先执行此自增长方法。注意:Mysql和Oracle的方法不一样。

5. 方法:

Insert方法使用parameterMap属性,字段名要和方法里的元素一一对应

6. 属性:

使用resultClass方法,类Person里必须id,firstName,lastName,birthDate,werghtKilograms,heightMeters这些属性。

7. 使用xmlResultName:XML映射文件

XML文件内容:

8. 使用方法:用来设置元素的属性,其中nullValue表示缺省值

上面的方法也可以写成这样:

9. 如果传入的参数只有一个,用#value#来替代传入的参数名。如果还传来的是字段名,则IBatis不支持

10. 判断传入的参数是否存在:isNotNull,判断传入的参数值是否大于设定的值:isGreaterThan

11. 判断传入的参数是否为空:isEmpty和isNotEmply

12. 如果进行模糊查询,使用like方法

分享到:

2009-08-05 23:09

浏览 1310

评论

mysql ibatis xml配置 like_iBatis学习方法及入门总结相关推荐

  1. mybatis入门之XML配置 idea版(含目录结构与sql语句)

    mybatis入门之XML配置 maven目录结构 1.创建一个maven项目 2. 配置pom文件 3.创建数据库及数据库表 4.java类和接口 4.1 User.java实体类 4.2.User ...

  2. Mybatis最入门---代码自动生成(generatorConfig.xml配置)

    [一步是咫尺,一步即天涯] 经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成.这里的代码自动生成包括,与数据库一 ...

  3. eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池

    mysql8.0在eclipse中通过xml文件配置数据库连接池 1.关于Mysql8.0 2.数据库连接池(DBCP) 3.准备工作 4.配置context.xml 5.配置web.xml 6.调用 ...

  4. mybatis 配置 mysql连接池_spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)...

    项目目录结构 1. 导入依赖 创建 maven 工程,除了 Spring 的基本依赖外,还需要导入 Mybatis 和 Druid 的相关依赖: org.springframeworkgroupId& ...

  5. Spring MVC 无XML配置入门示例

    Spring MVC 无XML(纯 Java)配置入门示例 本示例是从<Spring in Action, Fourth Edition>一书而来,涉及的是书中5.1节部分内容,书中其实说 ...

  6. 【SpringMVC 笔记】SpringMVC 原理 + 入门项目(xml 配置版 vs 注解版)

    SpringMVC 入门项目 什么是 SpringMVC? 中心控制器 SpringMVC 执行原理 执行流程 xml 配置版 1.创建一个 Web 项目 2.pom.xml 中导入 SpringMV ...

  7. Spring Boot入门系列(六)Spring Boot如何使用Mybatis XML 配置版【附详细步骤】

    前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...

  8. (0.2)linux下Mysql的安装配置与管理入门(目录篇)

    本章学习内容: 1.基于Linux平台的Mysql项目场景介绍 1.1.互联网各类网站.购物网站.门户网站.博客系统.IDC,云平台,VPS,虚拟主机空间,论坛,嵌入式. 2.mysql数据库运行环境 ...

  9. SpringBoot—整合log4j2入门和log4j2.xml配置详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...

最新文章

  1. 彻底理解cookie,session,token
  2. unet3 动态分辨率支持
  3. C++静态成员函数小结
  4. AI在汽车中的应用:实用深度学习
  5. ElasticSearch(笔记)
  6. linux 有线网络管理,uos linux网络管理
  7. 如何设置mysql字符集支持utf-8 和gbk_如何设置Mysql数据库默认的字符集编码为GBK...
  8. 管道 通过匿名管道在进程间双向通信
  9. 微型计算机8088拆字实验编程,LGN-01B型 PLC可编程控制器及单片机开发系统综合实验台...
  10. echarts 曲线面积对比图
  11. Pixhawk之启动代码和入口函数(.mk、rcS、__start、hrt)
  12. Test meeting 11.23
  13. bootstrap3 文件上传插件fileinput中文说明文档
  14. Apsara Clouder云计算专项技能认证考试题目和答案
  15. 图数据库ONgDB Release v-1.0.0
  16. 腾讯新游侍魂上线,侍魂:胧月传说安卓模拟器电脑版详细教程
  17. 智能制造-低时延满足制造需求
  18. 今日头条校招2016-09-28在线编程题(2题)
  19. 微前端 Micro-Frontends - 概念
  20. nvue 怎么布局

热门文章

  1. “优秀IT工程师”是什么样的?
  2. Android开发中手机存储路径问题
  3. Windows 下 修改 Anaconda3 jupyter 默认启动目录
  4. conda command not found ubuntu
  5. microsoftonenote_Microsoft
  6. 负数如何归一化处理_小白的图像处理入门(一)
  7. 灵图天行者9 pc版_原神PC预下载现已开启
  8. gdb调试时查看内存
  9. 启明云端分享| 手把手教你基于DEMO源码快速进行86盒应用开发
  10. mysql 活跃事务_MySQL日志与事务