MyBatis3用户指南简体中文版Word下载.docx
《MyBatis3用户指南简体中文版Word下载.docx》由会员分享,可在线阅读,更多相关《MyBatis3用户指南简体中文版Word下载.docx(84页珍藏版)》请在冰豆网上搜索。
http:
//code.goo
你也是本文档的最佳作者,其他用户也会来阅读它的。
关于翻译
MyBatis3的用户指南翻译由南磊完成,若对翻译质量有任何意见和建议,请联系
nanlei1987@gmail.com,愿和大家共同提高,共同进步。
目录
什么是MyBatis?
.............................................................................................................5入门.................................................................................................................................5从XML中构建SqlSessionFactory..............................................................................5不使用XML构建SqlSessionFactory...........................................................................6
从SqlSessionFactory中获取SqlSession.......................................................................6探究已映射的SQL语句............................................................................................7命名空间的一点注释..........................................................................................8范围和生命周期........................................................................................................8
SqlSessionFactoryBuilder.....................................................................................8
SqlSessionFactory................................................................................................9
SqlSession..........................................................................................................9
Mapper实例.......................................................................................................9
XML映射配置文件........................................................................................................10properties.................................................................................................................10
Settings....................................................................................................................11typeAliases..............................................................................................................12typeHandlers............................................................................................................13objectFactory...........................................................................................................14plugins....................................................................................................................15environments............................................................................................................16transactionManager............................................................................................17dataSsource.......................................................................................................17mappers...................................................................................................................19
SQL映射的XML文件...................................................................................................19
select.......................................................................................................................20insert,update,delete..............................................................................................21
sql...........................................................................................................................23
Parameters...............................................................................................................24resultMap................................................................................................................25
高级结果映射...................................................................................................27
id,result..........................................................................................................29支持的JDBC类型............................................................................................30构造方法..........................................................................................................30关联.................................................................................................................31集合.................................................................................................................34鉴别器.............................................................................................................36缓存........................................................................................................................38使用自定义缓存...............................................................................................38参照缓存.................................................................................................................39动态SQL................................................................................................................39
if.....................................................................................................................40choose,when,otherwise.....................................................................................40
trim,where,set..................................................................................................41foreach.............................................................................................................43
JavaAPI.........................................................................................................................43
应用目录结构..........................................................................................................43
SqlSessions..............................................................................................................44
SqlSessionFactoryBuilder...................................................................................44
SqlSessionFactory..............................................................................................46
SqlSession........................................................................................................47
SelectBuilder.....................................................................................................53
SqlBuilder........................................................................................................56
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlanOldJavaObjects,普通的Java对象)映射成数据库中的记录。
入门
每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。
SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来获得。
SqlSessionFactoryBuilder对象可以从XML配置文件,或从Configuration类的习惯准备的实例中构建SqlSessionFactory对象。
从XML中构建SqlSessionFactory
从XML文件中构建SqlSessionFactory的实例非常简单。
这里建议你使用类路径下的资源文件来配置,但是你可以使用任意的Reader实例,这个实例包括由文字形式的文件路径或URL形式的文件路径file:
//来创建。
MyBatis包含了一些工具类,称作为资源,这些工具类包含一些方法,这些方法使得从类路径或其他位置加载资源文件更加简单。
Stringresource="
org/mybatis/example/Configuration.xml"
;
Readerreader=Resources.getResourceAsReader(resource);
sqlMapper=newSqlSessionFactoryBuilder().build(reader);
XML配置文件包含对MyBatis系统的核心设置,包含获取数据库连接实例的数据源和
决定事务范围和控制的事务管理器。
关于XML配置文件的详细内容可以在文档后面找到,这里给出一个简单的示例:
<
?
xmlversion="
1.0"
encoding="
UTF-8"
?
>
!
DOCTYPEconfigurationPUBLIC"
-//mybatis.org//DTDConfig3.0//EN"
"
//mybatis.org/dtd/mybatis-3-config.dtd"
configuration>
environmentsdefault="
development"
environmentid="
transactionManagertype="
JDBC"
/>
dataSourcetype="
POOLED"
propertyname="
driver"
value="
${driver}"
url"
${url}"
username"
${username}"
password"
${password}"
/dataSource>
/environment>
/environments>
mappers>
mapperresource="
org/mybatis/example/BlogMapper.xml"
/mappers>
/configuration>
当然,在XML配置文件中还有很多可以配置的,上面的示例指出的则是最关键的部分。
要注意XML头部的声明,需要用来验证XML文档正确性。
environment元素体中包含对事
务管理和连接池的环境配置。
mappers元素是包含所有mappe(r
的XML文件包含SQL代码和映射定义信息。
不使用XML构建SqlSessionFactory
映射器)的列表,这些mapper
如果你喜欢从Java程序而不是XML文件中直接创建配置实例,或创建你自己的配置构建器,MyBatis也提供完整的配置类,提供所有从XML文件中加载配置信息的选项。
DataSourcedataSource=BlogDataSourceFactory.getBlogDataSource();
TransactionFactorytransactionFactory=new
JdbcTransactionFactory();
Environmentenvironment=
newEnvironment("
transactionFactory,dataSource);
Configurationconfiguration=newConfiguration(environment);
configuration.addMapper(BlogMapper.class);
SqlSessionFactorysqlSessionFactory=
newSqlSessionFactoryBuilder().build(configuration);
注意这种情况下配置是添加映射类。
映射类是Java类,这些类包含SQL映射语句的注解从而避免了XML文件的依赖,XML映射仍然在大多数高级映射(比如:
嵌套Join映射)
时需要。
出于这样的原因,如果存在XML配置文件的话,MyBatis将会自动查找和加载一
个对等的XML文件(这种情况下,基于类路径下的BlogMapper.class类的类名,那么
BlogMapper.xml将会被加载)。
后面我们会了解更多。
从SqlSessionFactory中获取SqlSession
现在,我们已经知道如何获取SqlSessionFactory对象了,基于同样的启示,我们就可以获得SqlSession的实例了。
SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法。
你可以用SqlSession实例来直接执行已映射的SQL语句。
例如:
SqlSessionsession=sqlMapper.openSession();
try{
Blogblog=(Blog)session.selectOne("
org.mybatis.example.BlogMapper.selectBlog"
101);
}finally{
session.close();
}
这种方法起到的作用,和我们使用之前的MyBatis版本是相似的,现在有一种更简洁的方法。
使用合理描述参数和SQL语句返回值的接口(比如BlogMapper.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误。
SqlSessionsession=sqlSessionFactory.openSession();
BlogMappermapper=session.getMa