`

MyBatis3 User Guide 第一部分

阅读更多

    用iBatis已经很久一段时间了,最近得知iBatis 更名为MyBatis了,而且做了更新,为了方便自己,也为了方便同行,所以从今天开始陆续的翻译MyBatis3 User Guide。时间关系,可能翻译周期会稍长。水平有限,难免会有翻译的不准确的地方,希望不要误人子弟,呵呵。

 

声明:文章内容只作为学习和交流使用,不得用于商业转载,如需使用,请通过站内短信与本人联系,获得许可。

 

MyBatis 是什么?(What is MyBatis?)

 

    MyBatis 是第一个类级别的持久层框架,同时支持用户自定义SQL(custom SQL),存储过程(stored procedures)和高级映射(advanced mappings)。MyBatis 消除了几乎全部的JDBC代码(个人理解,这里指的是那些通用的获取Connection,创建Statement等的代码),以及需要手动进行参数设置,和需要手动从结果集中获取数据的代码。MyBatis 可以用非常简单的XML 或者注解(Annotations) 进行配置,可以将原始类型(primitives)、Map 接口(Map interfaces)和Java POJO(Plain Old Java Objects)映射为数据库中的记录。

 

准备开始

    每个MyBatis应用都以SqlSessionFactory实例为中心。SqlSessionFactory实例可以从SqlSessionFactoryBuilder对象获得。SqlSessionFactoryBuilder可以通过Configuration类或从XML配置构建SqlSessionFactory实例。

 

从XML中构建SqlSessionFactory对象

    从XML文件中构建SqlSessionFactory实例非常的简单。推荐从classpath中加载配置,但其实你可以使用任何一种Reader实例,包括从字符串表示的文件路径或者以file://开头的URL表示的路径形式。MyBatis 内置了一个工具类--Resources,这个类包含了很多方法,可以让你从classpath或者其他位置加载资源时相对容易一些。

String resource = "org/mybatis/example/Configuration.xml"; 
Reader reader = Resources.getResourceAsReader(resource); 
sqlMapper = new SqlSessionFactoryBuilder().build(reader);

 

    XML配置文件中包含了MyBatis的核心系统设置,包括用以获取数据库链接的DataSource,包括用来进行事务范围界定和控制的TransactionManager。完整的XML配置会在本文的后面给出,这里只给出一个简单的示例:XML配置文件中包含了MyBatis的核心系统设置,包括用以获取数据库链接的DataSource,包括用来进行事务范围界定和控制的TransactionManager。完整的XML配置会在本文的后面给出,这里只给出一个简单的示例:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration> 
  <environments default="development"> 
      <environment id="development"> 
      <transactionManager type="JDBC"/> 
      <dataSource type="POOLED"> 
        <property name="driver" value="${driver}"/> 
        <property name="url" value="${url}"/> 
        <property name="username" value="${username}"/> 
        <property name="password" value="${password}"/> 
      </dataSource> 
    </environment> 
  </environments> 
  <mappers> 
    <mapper resource="org/mybatis/example/BlogMapper.xml"/> 
  </mappers> 
</configuration>

    该XML配置文件还有许多东西可配置,上面的这个示例只给出了最关键的那部分。需要注意的是XML的头部,会以此来验证XML配置的有效性。environment这个标签包含了事务管理和连接池的一些环境配置。mappers标签包含了一组映射关系,这些XML文件包含了sql代码和一些映射关系的定义。

 

不用XML也可以构建SqlSessionFactory对象

    如果你更喜欢直接用java代码进行配置,而不太喜欢用XML的方式,或者用你自己写的配置构建程序,MyBatis提供了一个完整的Configuration类,它提供了一种和XML方式完全等效的方式。

DataSource dataSource = BlogDataSourceFactory.getBlogDataSource(); 
TransactionFactory transactionFactory = new JdbcTransactionFactory(); 
Environment environment = new Environment("development", transactionFactory, dataSource); 
Configuration configuration = new Configuration(environment); 
configuration.addMapper(BlogMapper.class); 
SqlSessionFactory sqlSessionFactory =  new SqlSessionFactoryBuilder().build(configuration); 

     需要注意的是,这种方式,配置中增加了一个映射类(mapper class)。映射类采用SQL Mapping注解,从而避免了使用XML文件。然而因为Java注解的一些限制和MyBatis映射的复杂性,基于XML的映射依然是一些最高级的映射所必须的方式(比如:嵌套的关联映射,Nested Join Mapping)。基于这个原因,MyBatis会自动搜索并加载已经存在的同等XML文件(这种情况下,会从classpath中加载BlogMapper.xml,并且取名为BlogMapper.class)。这部分之后会进行详述。

 

从SqlSessionFactory中获取SqlSession对象

     现在你已经可以获得SqlSessionFactory对象了,就像这部分的标题一样,你可以获取SqlSession对象了。SqlSession完全包含了你所需要和数据库进行sql交互的每一个方法。你可以用SqlSession对象直接去执行一个已经映射了的SQL语句,例如:

SqlSession session = sqlMapper.openSession(); 
try { 
  Blog blog = (Blog) session.selectOne( 
    "org.mybatis.example.BlogMapper.selectBlog", 101); 
} finally { 
  session.close(); 
}

     采用这种方式,对MyBatis以前版本的用户来说是很熟悉的,但现在有一种更加直观的方式。使用接口(例如:BlogMapper.class),它可以更恰当的描述该条sql的参数以及返回值,现在你可以用更加清晰的,以及类型安全的代码来执行了,而且参数不再是字符串,返回值也不用再进行强制转换。如下所示:

SqlSession session = sqlSessionFactory.openSession(); 
try { 
  BlogMapper mapper = session.getMapper(BlogMapper.class); 
  Blog blog = mapper.selectBlog(101); 
} finally { 
  session.close(); 
}

      现在,让我们继续探索正在做的这些操作的更加确切的含义吧。

分享到:
评论
6 楼 angviza 2011-10-11  
Mybatis3加spring怎么做批处理啊,求教
5 楼 dongwei_6688 2010-12-27  
askjsp 写道
dongwei_6688 写道
askjsp 写道
基本上都是原话,没怎么见作者自己的观点。实话


的确,呵呵,我应该注明【翻译】才是
当初因为没有中文版自己就试着翻译了,后来有了中文版,就终止了。


呵呵,原来是翻译啊,我当初也没看仔细,现在才看到,SORRY

不错!

共同学习啊。
4 楼 askjsp 2010-12-09  
dongwei_6688 写道
askjsp 写道
基本上都是原话,没怎么见作者自己的观点。实话


的确,呵呵,我应该注明【翻译】才是
当初因为没有中文版自己就试着翻译了,后来有了中文版,就终止了。


呵呵,原来是翻译啊,我当初也没看仔细,现在才看到,SORRY

不错!
3 楼 dongwei_6688 2010-12-09  
askjsp 写道
基本上都是原话,没怎么见作者自己的观点。实话


的确,呵呵,我应该注明【翻译】才是
当初因为没有中文版自己就试着翻译了,后来有了中文版,就终止了。
2 楼 askjsp 2010-12-02  
基本上都是原话,没怎么见作者自己的观点。实话
1 楼 azheng270 2010-08-23  
spring下事务管理的配置应该怎么配呢?

相关推荐

    MyBatis 3 User Guide Simplified Chinese

    2. **MyBatis 3 User Guide Simplified Chinese** 这份PDF文档是MyBatis 3的简体中文用户指南,涵盖了MyBatis的核心概念、配置、映射文件、API使用方法等。通过阅读,你可以了解如何创建SqlSessionFactory、...

    MyBatis 3 User Guide Simplified Chinese.pdf

    MyBatis 3 User Guide Simplified Chinese.pdf MyBatis 3 User Guide Simplified Chinese.pdf

    mybatis-3-user-guide

    MyBatis是一个流行的Java持久层框架,它支持普通的SQL查询、存储过程和高级映射。它简化了数据库编程,消除了几乎所有的JDBC代码以及参数的设置和结果集的检索。MyBatis使用简单的XML或注解来配置和映射原生信息,将...

    MyBatis3 User Guide

    MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and...

    MyBatis-3-User-Guide用户手册(中文英文)

    什么是 MyBatis?\ 5 入门\ 5 从 XML 中构建 SqlSessionFactory \ 5 不使用 XML 构建 SqlSessionFactory\ 6 从 SqlSessionFactory 中获取 SqlSession\ 6 探究已映射的 SQL语句 \ 7 命名空间的一点注释 \ 8 ...

    MyBatis 3 User Guide Simplified Chinese.rar

    总的来说,MyBatis 3提供了一种强大且灵活的方式来处理数据库操作,其简化的中文用户指南对于中国开发者来说是一份宝贵的资源,帮助他们快速理解和应用这个框架。通过深入学习和实践,开发者可以充分利用MyBatis的...

    MyBatis-3 User-Guide

    1. **从XML中构建SqlSessionFactory**: 这种方式通常涉及到创建一个mybatis-config.xml配置文件,其中包含数据库连接信息、映射文件的位置等。配置文件中,你可以定义数据源、事务管理器以及其他全局设置。 2. **不...

    MyBatis-3-User-Guide.pdf

    MyBatis 是一个流行的 Java 持久层框架,它提供了对象关系映射(ORM)的灵活实现。它避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的麻烦。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口...

    Mybatis 3.2.8 user guide

    - **概述**:Mapper XML 文件是MyBatis的核心组成部分之一,用于定义SQL语句和结果映射规则。 - **命名空间**:每个Mapper XML文件都有一个唯一的命名空间,通常与对应的接口全限定类名一致。 - **SQL语句标签**:如...

    MyBatis-3-User-Guide-Simplified-Chinese.rar

    MyBatis 是一款深受开发者喜爱...通过阅读《MyBatis-3-User-Guide-Simplified-Chinese》这份文档,开发者可以系统地了解MyBatis的各个部分,掌握如何有效地使用MyBatis来处理数据库操作,从而提升开发效率和代码质量。

    MyBatis User Guide.rar

    MyBatis 3 - User Guide 5 November 2010 4 resultMap ........ 28 Advanced Result Mapping ......... 30 id, result ...... 32 Supported JDBC Types 33 constructor .. 33 association .. 34 collection...

    MyBatis3中文文档

    MyBatis 3 User Guide Simplified Chinese.

    spring mybatis shiro 共6天 8部分 第1部分

    spring mybatis shiro 共6天 8部分 第1部分 spring mybatis shiro 共6天 8部分 第1部分

    MyBatis_3_User_Guide.zip_mybatis_mybatis api

    这份"MyBatis_3_User_Guide.zip"压缩包内包含的"MyBatis_3_User_Guide.pdf"文档,是MyBatis 3的用户指南,它全面解析了MyBatis框架的核心功能和使用方法。以下是一些主要知识点的详细说明: 1. **配置文件**:...

    MyBatis3_用户指南--MyBatis-3-User-Guide-zh_CN.pdf

    MyBatis3_用户指南--MyBatis-3-User-Guide-zh_CN.pdf 非常实用

    MyBatis-3-User-Guide

    ### MyBatis-3-User-Guide 知识点概览 #### 一、MyBatis简介 在《MyBatis-3-User-Guide》文档中,首先介绍了MyBatis的基本概念及其重要性。MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射...

    MyBatis3官方中文文档

    这个过程是MyBatis集成到项目中的第一步,为后续的数据库操作打下基础。 其次,MyBatis的核心概念之一是SqlSessionFactory,每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为中心的。SqlSessionFactory...

    MyBatis 3 用户指南中文英文

    通过阅读"MyBatis 3 User Guide Simplified Chinese.pdf"和"MyBatis-3.0.3-User-Guide.pdf"这两份文档,开发者可以深入了解MyBatis 3的各个功能和最佳实践,从而更高效地进行数据库操作。这份指南覆盖了从基础概念到...

Global site tag (gtag.js) - Google Analytics