Mybatis详解
Mybatis详解
程序员可乐、
一个有故事的程序员,持续更新技术教程
展开
-
mybatis源码解读(一)——初始化环境
本系列博客将对mybatis的源码进行解读,关于mybatis的使用教程,可以查看我前面写的博客——传送门。 为了便于后面的讲解,我们这里首先构造一个统一环境。也可以参考mybatis官网。1、数据库建表DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `user_id` int(32) NOT NULL ...原创 2018-04-25 22:16:00 · 184 阅读 · 1 评论 -
mybatis源码解读(四)——事务的配置
上一篇博客我们介绍了mybatis中关于数据源的配置原理,本篇博客介绍mybatis的事务管理。 对于事务,我们是在mybatis-configuration.xml 文件中配置的: 关于解析 <environments />标签在上一篇数据源的配置我们已经介绍了,不了解的可以参考上篇博客。1、mybatis 支持的事务类图 mybatis ...原创 2018-05-12 09:42:00 · 273 阅读 · 0 评论 -
mybatis 详解(七)------一对一、一对多、多对多
前面几篇博客我们用mybatis能对单表进行增删改查操作了,也能用动态SQL书写比较复杂的sql语句。但是在实际开发中,我们做项目不可能只是单表操作,往往会涉及到多张表之间的关联操作。那么我们如何用 mybatis 处理多表之间的关联操作呢?请看本篇博客详解。 本篇详细代码:http://pan.baidu.com/s/1eSzmst8 密码:3...原创 2017-08-11 09:01:00 · 262 阅读 · 4 评论 -
mybatis 详解(八)------ 懒加载
本章我们讲如何通过懒加载来提高mybatis的查询效率。 本章所有代码:https://pan.baidu.com/s/1i6eDOwP 密码: qnbu1、需求:查询订单信息,有时候需要关联查出用户信息。 第一种方法:我们直接关联查询出所有订单和用户的信息select * from orders o ,user u where o.user_id = u.i...原创 2017-08-12 09:40:00 · 215 阅读 · 4 评论 -
mybatis 详解(五)------动态SQL
前面几篇博客我们通过实例讲解了用mybatis对一张表进行的CRUD操作,但是我们发现写的 SQL 语句都比较简单,如果有比较复杂的业务,我们需要写复杂的 SQL 语句,往往需要拼接,而拼接 SQL ,稍微不注意,由于引号,空格等缺失可能都会导致错误。 那么怎么去解决这个问题呢?这就是本篇所讲的使用 mybatis 动态SQL,通过 if, choose, when, othe...原创 2017-08-09 09:03:00 · 367 阅读 · 7 评论 -
MyBatis 详解(一对一,一对多,多对多)
1、什么是MyBatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供...原创 2017-07-28 09:09:00 · 2620 阅读 · 6 评论 -
mybatis 详解(六)------通过mapper接口加载映射文件
通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢? 我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过<mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文...原创 2017-08-10 09:06:00 · 204 阅读 · 2 评论 -
mybatis 详解(十)------ 逆向工程
通过前面的学习,在实际开发中,我们基本上能对mybatis应用自如了,但是我们发现了一个问题,所有操作都是围绕着po类,xxxMapper.xml文件,xxxMapper接口等文件来进行的。如果实际开发中数据库的表特别多,那么我们需要手动去写每一张表的po类,xxxMapper.xml,xxxMapper.java文件,这显然需要花费巨大的精力,而且可能由于表字段太多,写错了而不知道...原创 2017-08-15 09:06:00 · 211 阅读 · 5 评论 -
mybatis源码解读(三)——数据源的配置
在mybatis-configuration.xml 文件中,我们进行了如下的配置: <!-- 可以配置多个运行环境,但是每个 SqlSessionFactory 实例只能选择一个运行环境常用: 一、development:开发模式 二、work:工作模式 --> <environments default="development">...原创 2018-05-09 19:55:00 · 923 阅读 · 0 评论 -
mybatis 详解(三)------入门实例(基于注解)
1、创建MySQL数据库:mybatisDemo和表:user 详情参考:mybatis 详解(二)------入门实例(基于XML)一致2、建立一个Java工程,并导入相应的jar包,具体目录如下 详情参考:mybatis 详解(二)------入门实例(基于XML)一致3、在 MyBatisTest工程中添加数据库配置文件 mybatis-co...原创 2017-08-07 09:05:00 · 158 阅读 · 2 评论 -
mybatis源码解读(五)——sql语句的执行流程
还是以第一篇博客中给出的例子,根据代码实例来入手分析。 1 static { 2 InputStream inputStream = MybatisTest.class.getClassLoader().getResourceAsStream("mybatis-configuration.xml"); 3 sqlSessionF...原创 2018-05-13 17:37:00 · 213 阅读 · 0 评论 -
mybatis 详解(十一)------ mybatis和spring整合
想要整合mybatis和spring,那么我们首先要知道这两个框架是干嘛的,对于mybatis我们前面几篇博客已经有了很详细的介绍,我们通过加载mybatis-configuration.xml 文件来产生SqlSessionFactory,然后通过SqlSessionFactory去产生sqlSession,最后用 sqlSession对数据库表所映射的实体类进行增删改查操作。而s...原创 2017-08-16 09:07:00 · 217 阅读 · 7 评论 -
mybatis源码解读(二)——构建Configuration对象
Configuration 对象保存了所有mybatis的配置信息,主要包括: ①、 mybatis-configuration.xml 基础配置文件 ②、mapper.xml 映射器配置文件1、读取配置文件 前面例子有这么一段代码:1 private static SqlSessionFactory sqlSessionFactory;2...原创 2018-05-07 20:31:00 · 200 阅读 · 1 评论 -
mybatis 详解(四)------properties以及别名定义
上一篇博客我们介绍了mybatis的增删改查入门实例,我们发现在mybatis-configuration.xml 的配置文件中,对数据库的配置都是硬编码在这个xml文件中,如下图,那么我们如何改进这个写法呢? 1、我们将 数据库的配置语句写在 db.properties 文件中jdbc.driver=com.mysql.jdbc.Driverjdbc.url...原创 2017-08-08 09:07:00 · 221 阅读 · 2 评论 -
mybatis 详解(一)------JDBC
1、什么是MyBatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基...原创 2017-08-04 20:46:00 · 773 阅读 · 1 评论 -
mybatis 详解(二)------入门实例(基于XML)
通过上一小节,mybatis 和 jdbc 的区别:http://www.cnblogs.com/ysocean/p/7271600.html,我们对 mybatis有了一个大致的了解,下面我们通过一个入门实例来对mybatis有更近一步的了解。 我们用 mybatis 来对 user 表进行增删改查操作。 ps:本篇博客源代码链...原创 2017-08-05 00:10:00 · 140 阅读 · 5 评论 -
mybatis 详解(九)------ 一级缓存、二级缓存
上一章节,我们讲解了通过mybatis的懒加载来提高查询效率,那么除了懒加载,还有什么方法能提高查询效率呢?这就是我们本章讲的缓存。 本篇源码下载链接:http://pan.baidu.com/s/1eRHTsIm 密码:a5wn mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解: ①、一级缓存是SqlSession级别的缓存。在操作数据库...原创 2017-08-14 09:24:00 · 291 阅读 · 3 评论