Java数据持久层框架 MyBatis

MyBatis 的前身就是 iBatis 。是一个数据持久层(ORM)框架。

Java数据持久层框架 MyBatis_第1张图片

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的 JPetStore实例。

总体来说 MyBatis 主要完成两件事情

 1.根据 JDBC 规范建立与数据库的连接;

2.通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。

MyBatis技术文档PPT分享

------------------------------------------分割线------------------------------------------

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2014年资料/8月/3日/Java数据持久层框架 MyBatis

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割线------------------------------------------

Java实战应用:Mybatis实现单表的增删改 http://www.linuxidc.com/Linux/2014-06/103456.htm

[Java][Mybatis]物理分页实现 http://www.linuxidc.com/Linux/2014-04/99889.htm

Mybatis快速入门教程 http://www.linuxidc.com/Linux/2013-06/85762.htm

Mybatis的关于批量数据操作的测试 http://www.linuxidc.com/Linux/2012-05/60863.htm

Mybatis中对List 对象List的批处理插入操作 http://www.linuxidc.com/Linux/2014-02/96916.htm

一、原理介绍

Mybatis的应用是围绕着一个SqlSessionFactory实例展开的。SqlSessionFactoryBuilder根据XML映射文件创建SqlSessionFactory。

SqlSessionFactory由名字可以联想到,可以通过它获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句:

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

上面的方法是基于Mybatis的旧版本,在最新的版本中有更清晰的方法,通过一个java接口作为参数(e.g. BlogMapper.class)返回一个给定的sql映射。

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

看到这里,您可能会对什么才是SqlSession和Mapper类真正执行的sql语句非常好奇。下面我们看一下例子.


  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

 

这个例子非常简单,是轻量级的。您可以定义众多类似这样的sql语句。这个文件在命名空间"org.mybatis.example.BlogMapper"中,定义了一个叫做"selectBlog"的sql语句。这样就可以使用一个绝对唯一路径“org.mybatis.example.BlogMapper.selectBlog”定位到这个sql语句上。

如下所示:

Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);

请 注意 这是 一个绝对唯一的 Java类 调用 方法 如何 类似 的 。 这个名字 可以 直接 映射到 命名空间 的 映射 类 ,以及 具有 相匹配的 名称 、参数 和 返回 类型 映射 select语句 的 方法 。 这使得 您可以 很 简单地调用 映射 接口 的 方法 , 这里 是 例子 :

BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);

如您所见,第二种方法更简洁,不需要返回值的cast。

到目前为止,我们已经了解Mybatis如何将xml映射文件与Java类映射去执行sql语句的,具体xml映射文件的含义请查询mybatis官方网站的资料 ,再此不在介绍。

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-08/105041p2.htm

你可能感兴趣的:(Java数据持久层框架,MyBatis)