Mybatis初识

原创 2016年05月31日 12:34:59

Mybatis初识


mybatis介绍

mybatis是一个简化和实现了java数据持久化层的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。mybatis流行的主要原因在于它简单和易用以及较高的性能。

introduce:

    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 retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.

mybatis优点特性

1、消除了大量的JDBC冗余代码
2、学习成本比较低
3、可以很好的与传统的数据库协同工作
4、可以接受SQL语句
5、提供与Spring和Guice框架的集成支持
6、提供了与第三方缓存类库的集成支持
7、较高的访问和查询性能

备注:通常一些ORM框架使用了大量的动态代理模式来产生尸体对象等,由于动态代理本身有很大的内存消耗,大量使用动态代理会使整个系统性能变得比较差。


mybatis核心预览


mybatis架构设计分析

//TODO 图画展示


mybatis核心配置文件mybatis-config.xml配置和加载机制

mybatis初始化机制


使用mybatis方式

1、基于传统的statmented id调用方式
2、基于Mapper接口调用方式(更符合面向对象思想,底层还是调用第一种)
备注:使用Mapper接口是最佳实践,我们可以以类型安全的方式调用映射的SQL语句

mybatis核心类和接口

SqlSessionFactoryBuilder(读取核心配置文件生成会话工厂的类)
SqlSessionFactory(新建会话的工厂类)
SqlSession(会话对象类)

Configuration(对应mybatis-config配置文件的一个对象)
MappedStatement(对应着映射器配置文件的每一条statment语句配置)
Executor(执行器接口,就像发送器)
BoundSql(对应一条sql语句)
TypeHandler()
ParameterHandler(对入参作处理处理器)
ResultHandler(对出参作处理的处理器)

//TODO 分析一次查询的全过程(debug代码分析)


映射器配置文件

1、CRUD
2、一对多和多对多配置
3、动态SQL

mybatis很重要的功能就是对入参和出参数据处理


mybatis缓存机制的设计与实现原理

一级缓存和二级缓存


mybatis数据源和连接池深入理解


mybatis逆向工程的使用

mybatis generator


mybatis和spring集成


参考

1、http://www.mybatis.org/mybatis-3/
2、http://generator.sturgeon.mopaas.com/index.html#
3、http://blog.csdn.net/u010349169/article/category/2309433
4、https://en.wikipedia.org/wiki/MyBatis
5、https://www.ibm.com/developerworks/cn/opensource/os-cn-mybatis/
6、https://www.ibm.com/developerworks/cn/java/j-lo-ibatis-principle/
7、https://www.ibm.com/developerworks/cn/opensource/os-cn-ibatis/

版权声明:本文为博主原创文章,未经博主允许不得转载。

初识mybatis(二)

上篇博客我们介绍通过Java代码来创建mybatis的配置文件,港真,这种方式看起来有意思实际在开发中用的并不多,mybatis的配置还是以xml配置为主,本文我们就来看看如何通过xml文件来配置my...
  • u012702547
  • u012702547
  • 2017年01月15日 20:28
  • 1599

《深入理解mybatis原理》 Mybatis初始化机制详解

对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。 1.MyBatis的初始化做了什么 ...
  • u010349169
  • u010349169
  • 2014年07月18日 21:54
  • 23542

mybatis常见面试/笔试题

1、#{}和${}的区别是什么? ${}是Properties文件中的变量占位符;它可以用于标签属性值和sql内部,属于静态文本替换; 比如${driver}会被静态替换为com.m...
  • yuki5233
  • yuki5233
  • 2017年04月13日 11:26
  • 2194

mybatis初识

  • 2015年08月24日 19:42
  • 41KB
  • 下载

初识MyBatis

  • 2017年06月30日 15:44
  • 572KB
  • 下载

博客(传琦):初识Mybatis 对应的源码

  • 2017年12月09日 20:16
  • 9KB
  • 下载

初识mybatis(二)

上篇博客我们介绍通过Java代码来创建mybatis的配置文件,港真,这种方式看起来有意思实际在开发中用的并不多,mybatis的配置还是以xml配置为主,本文我们就来看看如何通过xml文件来配置my...
  • u012702547
  • u012702547
  • 2017年01月15日 20:28
  • 1599

初识Mybatis(五)之输入映射和输出映射

MyBatis的映射 在Mapper.xml配置文件中的配置: select id="selectUserById" resultType="User" parameterType="ja...
  • tangyaya8
  • tangyaya8
  • 2018年01月16日 10:52
  • 12

初识Mybatis(四)之普通配置Dao和Mapper配置Dao

序言 在web项目开发中,一般都采用MVC架构模式,Mybatis是持久层的框架,所以其应该被写成Dao模式 Dao代码 UserDao package com.tangbaobao.mybi...
  • tangyaya8
  • tangyaya8
  • 2018年01月14日 21:35
  • 15

初识Mybatis(三)之入门级程序开发

用MyBatis操作Mysql数据库 POJO类 package com.tangbaobao.mybits.pojo; import java.io.Serializable; impor...
  • tangyaya8
  • tangyaya8
  • 2018年01月14日 21:07
  • 19
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mybatis初识
举报原因:
原因补充:

(最多只允许输入30个字)