MyBatis 3 用户指南中文版.docx
- 文档编号:30489487
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:103
- 大小:64.14KB
MyBatis 3 用户指南中文版.docx
《MyBatis 3 用户指南中文版.docx》由会员分享,可在线阅读,更多相关《MyBatis 3 用户指南中文版.docx(103页珍藏版)》请在冰豆网上搜索。
MyBatis3用户指南中文版
MyBatis3用户指南中文版
MyBatis3.0.1
曾令祝
2010.06.15
MyBatis3用户指南中文版
曾令祝2
目录
第一章什么是MyBatis.......................................................................................................................3
第二章入门.......................................................................................................................................4
一、从XML中创造SqlSessionFactory...........................................................................................4
二、不使用XML文件新建SqlSessionFactory................................................................................5
三、使用SqlSessionFactory获取SqlSession...................................................................................5
四、探究SQL映射语句................................................................................................................6
五、作用域和生命周期.................................................................................................................7
1.SqlSessionFactoryBuilder..................................................................................................7
2.SqlSessionFactory............................................................................................................7
3.SqlSession......................................................................................................................7
4.Mapper实例...................................................................................................................8
第三章Mapper的XML配置文件........................................................................................................9
一、属性(properties).................................................................................................................9
二、设置(settings)...................................................................................................................10
三、类型别名(typeAliases)......................................................................................................11
四、类型句柄(typeHandlers)....................................................................................................12
五、对象工厂(ObjectFactory)..................................................................................................13
六、插件(plugins)...................................................................................................................14
七、环境(environments)..........................................................................................................15
八、映射器(Mappers)..............................................................................................................18
第四章SQL映射语句文件.................................................................................................................19
一、select..................................................................................................................................19
二、insert,update,delete..............................................................................................................20
三、SQL....................................................................................................................................23
四、参数(parameters)..............................................................................................................23
五、resultMap............................................................................................................................25
六、缓存(cache).....................................................................................................................37
七、cache-ref缓存引用...............................................................................................................39
第五章动态语句...............................................................................................................................40
if...............................................................................................................................................40
choose,when,otherwise................................................................................................................41
trim,where,set............................................................................................................................41
foreach.......................................................................................................................................43
第六章JavaAPI................................................................................................................................45
一、目录结构.............................................................................................................................45
二、SqlSessions..........................................................................................................................46
三、SqlSession...........................................................................................................................49
第七章SelectBuilder.........................................................................................................................55
第八章SqlBuilder.............................................................................................................................58
第九章说明.....................................................................................................................................59
MyBatis3用户指南中文版
曾令祝3
第一章什么是MyBatis
MyBatis世界上流行最广泛的SQL映射框架,由ClintonBegin在2002年创建,其后,捐献给了Apache
基金会,成立了iBatis项目。
2010年5月,将代码库迁致GoogleCode,并更名为MyBatis。
关于以前的版本,请访问http:
//ibatis.apache.org/
关于更名后最新的版本,请访问:
MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。
MyBatis摒除了大部分的JDBC
代码、手工设置参数和结果集重获。
MyBatis只使用简单的XML和注解来配置和映射基本数据类型、
Map接口和POJO到数据库记录。
MyBatis3用户指南中文版
曾令祝4
第二章入门
每一个MyBatis应该都是以一个SqlSessionFactory实例为中心。
一个SqlSessionFactory实例可以使用
SqlSessionFactoryBuilder来创造。
从配置类中创造的定制SqlSessionFactoryBuilder实例,可以使用XML
配置文件来生成一个SqlSessionFactory实例。
一、从XML中创造SqlSessionFactory
从XML文件中创造SqlSessionFactory实例是非常简单的。
推荐使用一个类路径资源来进行配置,你也
可以使用一个Reader实例,甚至使用URL路径。
MyBatis有一个Resources通用类,类中有许多方法可以简单地从类路径和其他地址中加载资源。
Stringresource="org/mybatis/example/Configuration.xml";
Readerreader=Resources.getResourceAsReader(resource);
sqlMapper=newSqlSessionFactoryBuilder().build(reader);
XML文件包含了许多MyBatis的核心设置,包括一个获取数据库连接(Connection)实例的数据源
(DataSource),和一个决定事务作用域和操作的TransactionManager。
全部的XML配置文件的内容将在
以后提到,先给出一个简单的样子。
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEconfiguration
PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
"http:
//mybatis.org/dtd/mybatis-3-config.dtd">
XML配置文件中还有其它许多内容,上面的例子只是指出了最重要的部分。
注意这个XML的标头,需
要一个DTD验证文档。
environment项里包含了事务管理和连接池的环境配置。
mappers项中包含了一
系列SQL语句映射定义的XML文件。
MyBatis3用户指南中文版
曾令祝5
二、不使用XML文件新建SqlSessionFactory
如果你更想直接使用Java语言而不是XML来生成这些配置,更或者你想使用自己的配置生成器,MyBatis
提供了一个完整的配置类来完成XML文件一样的配置。
DataSourcedataSource=BlogDataSourceFactory.getBlogDataSource();
TransactionFactorytransactionFactory=newJdbcTransactionFactory();
Environmentenvironment=
newEnvironment("development",transactionFactory,dataSource);
Configurationconfiguration=newConfiguration(environment);
configuration.addMapper(BlogMapper.class);
SqlSessionFactorysqlSessionFactory=
newSqlSessionFactoryBuilder().build(configuration);
这个配置里,加载了一个映射类。
映射类是包含了SQL映射注解的Java类,可以用来取代XML。
然而,
由于Java注解的一些限制和MyBatis映射的复杂性,一些高级的映射还是要用XML来配置,比如嵌套
映射等。
由于这个原因,MyBatis会自动查找和加载已经存在的XML。
比如说上面的代码,BlogMapper.xml
将会被类路径中BlogMapper.class加载。
以后会详细讨论这些。
三、使用SqlSessionFactory获取SqlSession
假设你有一个SqlSessionFactory,你就可以来获取一个SqlSession实例,SqlSession包含了针对数据库执
行语句的每一个方法。
你可以直接使用SqlSession执行已经映射的每一个SQL语句。
比如:
SqlSessionsession=sqlMapper.openSession();
try{
Blogblog=(Blog)session.select(
"org.mybatis.example.BlogMapper.selectBlog",101);
}finally{
session.close();
}
上述步骤对于使用MyBatis的上一个版本(即iBatis2)的用户来说比较熟悉。
现在,有一个更加清晰的
方式。
使用一个有正确参数和返回值的接口,你就可以更加清晰和安全地编写代码,从而避免出错。
像
这样:
SqlSessionsession=sqlSessionFactory.openSession();
try{
BlogMappermapper=session.getMapper(BlogMapper.class);
Blogblog=mapper.selectBlog(101);
}finally{
session.close();
}
现在,让我们开始探究一下步骤的执行细节。
MyBatis3用户指南中文版
曾令祝6
四、探究SQL映射语句
对于上面所说的,你可能很好奇SqlSession或Mapper类具体是什么执行的。
这是一个很复杂的话题,
如果要讨论,可能要用占据这个文档的绝大部分。
为了给你一个执行过程的概括,现在给出两个例子。
在上面的例子中,语句已经由XML或注解所定义。
我们先来看一下XML,以前,MyBatis提供的的所
有特性,都是基于XML的映射语句来实现。
如果你以前使用过MyBatis,那你对这些概念会非常熟悉。
但是XML的映射配置文档有了许多改进,以后将会变得越来越简单清晰。
下面这个基于XML映射语句
可以完成上面的SqlSession调用。
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEmapper
PUBLIC"-//mybatis.org//DTDMapper3.0//EN"
"http:
//mybatis.org/dtd/mybatis-3-mapper.dtd">
select*fromBlogwhereid=#{id}
虽然这个简单的例子有点生涩,但是却非常简约。
你可以定义多个文件,也可以在一个XML文件里定
义任意个映射语句,这样可以省去XML标头。
文件的其它部分,都是自身的描述。
它定义了一个
org.mybatis.example.BlogMapper命名空间,在这个空间里再定义了一个selectBlog语句。
也可以使用
org.mybatis.example.BlogMapper.selectBlog全名称来调用。
我们可以将这样来调用上面这个文件
Blogblog=(Blog)session.select(
"org.mybatis.example.BlogMapper.selectBlog",101);
这和调用一个普通的JAVA类非常相似。
这个名字可以直接映射为一个与命名空间相同名称的Mapper
类,语句名对应类的方法名,参数和返回值也相对应。
你可以用下列语句简单地针对Mapper接口进行
调用,代码如下:
BlogMappermapper=session.getMapper(BlogMapper.class);
Blogblog=mapper.selectBlog(101);
第二种方式有许多优点。
一、它不依赖字符串,可以减少出错。
二、如果你的IDE有代码自动完成功能,
你可以很快导航到你的SQL语句(因为已经转化为方法名)。
三、你不再需要设定返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MyBatis 用户指南中文版 用户指南 中文版