MyBatis框架简介

1.什么是MyBatis
  MyBatis最早源自Apache基金会的一个开源项目iBatis,2010年这个项目有Apache software foundation迁移到了google code,并且改名为MyBatis;
  MyBatis是支持普通查询SQL查询,存储过程和高级映射查询的优秀持久层框架
  MyBatis封装了几乎所有的JDBC代码和参数的手工设置以及结果集的检索;
  MyBatis使用简单的XML或注解做配置和定义映射关系,将Java的POJOs(Plain Old Java Objects)映射成数据库中的记录。
2.MyBatis体系结构
  MyBatis体系结构主要由以下几个关键部分
    1).加载配置文件
      配置有两种形式,一种是XML配置文件,另一种是Java代码注解。
      MyBatis将SQL的配置信息加载成为一个个的MappedStatement对象(包括了传入参数映射配置、执行的SQL语句,结果映射配置),并将其存储在内存中
    2).SQL解析
      当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本类型),
      MyBatis会根据SQL的ID找到对应的MappendStatent,然后根据传入参数对象对MappedStatement进行解析,
      解析后可以得到最终要执行的SQL语句和参数
    3).SQL执行
      将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。
    4).结果映射
      将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap,JavaBean或者基本类型,并将最终结果返回。
3.MyBatis配置文件
  MyBastis框架的XML配置文件包含下面两种类型
    1).SqlMapConfig.xml(1个)
      主配置文件,用于指定数据库连接参数和框架参数
    2).SqlMap.xml(n个)
      映射定义文件,用于定义SQL语句和映射信息
4.框架API简介
  在使用MyBatis框架时,主要涉及以下几个API
    SqlSessionFactionBuilder
      该对象负责根据Mybatis配置文件SqlMapConfig.xml构建SqlSessionFactory实例
    SqlSessionFactory
      每一个MyBatis的应用程序都以一个SqlSessionFactory对象为核心。该对象负责创建SqlSession对象实例
    SqlSession
      该对象包含了所有执行SQL操作的方法,用于执行已映射的SQL语句

5.获取SqlSession对象
  String conf = "SqlMapConfig.xml";
  Reader reader = Resources.getResourceAsReader(conf);
  //创建SessionFactory对象
  SqlSessionFactoryBulider sfb = new SqlSessionFactoryBulider()
  SqlSessionFactory sf = sfb.build(reader);
  //创建Session
  SqlSession session = sf.openSession();

6.利用MyBastis实现分页查询
  在使用SqlSession的selectList()方法时,指定一个RowBounds分页器参数,即可查询指定范围的记录
    RowBounds(offset,limit)构造器
    RowBounds bounds = new RowBounds(offset,limit);
      offset指定抓取记录的起始行,从0开始
      limit指定抓取记录的数量
    selectList()使用方法
    sqlSession.selectList(SQL的ID,参数,RowBounds对象)
  提示:
    MyBatis分页是基于内存的分页,原理是查询出所有记录,然后基于jdbc的absolute()和next()方法定位获取部分记录,
    因此在遇到大量数据情况下,不推荐使用Mybatis自带分页功能。
    需要开发者指定分页查询的SQL语句或对MyBatis进行扩展使用。

7.使用Mapper映射器
  Mapper映射器是开发者创建绑定映射语句的接口,映射器接口的实例可以从SqlSession中获得。
    SqlSession session = sqlSessionFactory.openSession();
    try{
      DeptMapper mapper= session.getMapper(DeptMapper.class);
      //do work
    }finally{
      session.close();
    }
  提示:
    Mapper接口中的方法名要和SqlMap.xml中的SQL的id保持一致。

8.ResultMap映射定义
  在SqlMap.xml定义<select>操作时,如果查询结果字段名和Java POJO属性不一致,需要使用<resultMap>元素显式指定映射关系。
  例如:
    <select id="findAll1" resultMap="deptMap">
      select DEPTNO,DNAME,LOC from DEPT
    </select>
    <resultMap id="deptMap" type="com.test.entity.Dept">
      <result property="no" column="DEPTNO"/>
      <result property="name" column="DNAME"/>
      <result property="loc" column="LOC"/>
    </resultMap>

时间: 2024-10-09 23:19:05

MyBatis框架简介的相关文章

Unit07: MyBatis框架简介 、 MyBatis基本应用

Unit07: MyBatis框架简介 . MyBatis基本应用 1. myBatis (1)myBatis是什么? 是一个开源的持久层框架. 注:myBatis底层仍然是jdbc. (2)编程步骤 step1. 导包. mybatis,ojdbc,junit. step2. 添加配置文件. 注:配置文件主要包含连接池的配置和映射文件的位置. step3. 写实体类. 注:属性名必须跟表的字段名一样(大小写不区分). step4. 写映射文件. 注:映射文件主要包含的是sql语句. step5

MyBatis 框架简介

MyBatis 1.MyBatis简介:     1):MyBatis是开源的持久层框架.     2):利用JDBC抽象出持久层实现.     3):提供了简单易用的API与数据库进行交互.     4):MyBatis3起源于2001年的iBatis,添加了注解和映射支持. MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参数.结果集检

MyBatis框架及ORM

1.MyBatis框架简介 MyBatis 是一个开源的数据持久层框架(持久指的是瞬时到持久).它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询,存储过程的高级映射,几乎消除了所有JDBC 的代码和参数的手工设置以及结果集的检索.MyBatis作为持久层的框架,期主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置.这样做的好处 是将SQL与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改SQL. 2.什么是ROM ROM(Object

3.3.1 MyBatis框架介绍

MyBatis框架介绍 1. 什么是框架 (1) 框架是偷懒的程序员将代码进行封装, 之后进行重复使用的过程. (2) 框架其实是一个半成品, 以连接数据库为例, 连接数据库使用的驱动, url, 用户名 , 密码必须告知框架. (3) 程序员在使用框架的时候, 通常以配置文件的方式告知框架需要的信息, 多数会使用 xml 作为框架的配置文件. (4) 因此, 在使用框架开发代码时, 需要编写配置文件, 代码的编写反而会减少. (5) 框架都是第三方提供的, 提供的都是 jar 包. 因此, 使

MyBatis框架学习

MyBatis框架 1.MyBatis框架简介 目的(最大的作用):实现sql语句和java代码的分离,替代的是mvc模式中的Dao层,是持久层框架. 搭建方式: 1.配置mybatis全局配置文件: a.固定的文件头,根标签为<configuration></configuration>: b.在根标签内存在多个标签,<settings></settings>:设置日志文件打印内容的标签: <typeAliases></typeAlias

MyBatis框架知识整理

MyBatis框架 一.介绍: MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 和数据库打交道的技术有: 原生的JDBC技术---> Spring的JdbcTemplate技术 这些工具都是提供简单的SQL语句的执行,但是和我们这里学的MyBatis框架还有些不同,框架是一整套的东西,例如事务控制,查询缓存,字段映射等等. 我们用原生JDBC操作数据库的时候都会经过: 编写sql---->预编译---->设置参数----->执行sql

Mybatis框架之动态SQL书写方式小结

动态SQL简介 动态SQL是Mybatis框架中强大特性之一.在一些组合查询页面,需要根据用户输入的查询条件生成不同的查询SQL,这在JDBC或其他相似框架中需要在代码中拼写SQL,经常容易出错,在Mybatis框架中可以解决这种问题. 使用动态SQL元素与JSTL相似,它允许我们在XML中构建不同的SQL语句.常用元素为: 判断元素:if,choose 关键字元素:where,set,trim 循环元素:foreach if元素 if元素是简单的条件判断逻辑,满足指定条件时追加if元素内的SQ

Hibernate框架与Mybatis框架的对比

学习了Hibernate和Mybatis,但是一直不太清楚他们两者的区别的联系,今天在网上翻了翻,就做了一下总结,希望对大家有帮助! 原文:http://blog.csdn.net/firejuly/article/details/8190229 第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的

【Struts2】如何实现Struts2与Spring的整合 外加 MyBatis 框架

1,简介 一般没有人会用Spring+Struts2+MyBatis这样的框架了,可不能简称为SSM.因为SSM是Spring+SpringMVC+Mybatis的简称.SSH是Spring+Struts2+Hibernate,不过现在SSH用的人也不多了.这里笔者把Sping+Struts2+Mybatis放在一起就是纯粹的实现一下功能.主要讨论的还是Struts2和Spring. 如果不使用Spring框架,Struts2框架内部还是有机制可以利用反射创建对象,之所以要把Spring+Str