mybatis
Jaymeng8848
攀爬每一个巨人,站在他们肩膀上看一看
展开
-
JDBC驱动加载
概述一般情况下,在应用程序中进行数据库连接,调用JDBC接口,首先要将特定厂商的JDBC驱动实现加载到系统内存中,然后供系统使用。基本结构图如下:驱动加载入内存的过程这里所谓的驱动,其实就是实现了java.sql.Driver接口的类。如oracle的驱动类是 oracle.jdbc.driver.OracleDriver.class(此类可以在oracle提供的JDBC jar包中找到),此类实现了java.sql.Driver接口。由于驱动本质上还是一个class,将驱动加载到内存和加载普通的转载 2020-09-23 12:37:37 · 481 阅读 · 0 评论 -
mybatis实现分页的几种方式
一.借助数组进行分页原理:进行数据库查询操作时,获取到数据库中所有满足条件的记录,保存在应用的临时数组中,再通过List的subList方法,获取到满足条件的所有记录。实现:首先在dao层,创建StudentMapper接口,用于对数据库的操作。在接口中定义通过数组分页的查询方法,如下所示: List<Student> queryStudentsByArray();方法很简单,就是获取所有的数据,通过list接收后进行分页操作。创建StudentMapper.xml文件,编写查询的转载 2020-08-14 08:05:30 · 18952 阅读 · 1 评论 -
mybatis总结
mybatis核心组件ConfigurationConfiguration是mybatis的全局配置类,保存了环境对象Enviroment(Environment表示数据源相关环境),各种配置信息,以及作为各种资源解析后的注册表。例如,MapperRegister表示Mapper的注册表,TypeHandlerRegistry是TypeHandler的注册表,TypeAliasRegistry是TypeAlias的注册表,另外还以Map的形式保存了MappedStatement, ResultMap,原创 2020-08-11 21:16:01 · 122 阅读 · 0 评论 -
mybatis深入理解之#与$区别(十)
mybatis 中使用 Mapper.xml里面的配置进行 sql 查询,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下:select * from user where name = "Jack";上述 sql 中,我们希望 name 后的参数 “Jack” 是动态可变的,即不同的时刻根据不同的姓名来查询用户。在 Mapper.xml文件中使用如下的 sql 可以实现动态传递参数 name:select * from user where name = #{name};转载 2020-08-01 13:19:55 · 167 阅读 · 1 评论 -
Mybatis数据源与连接池(九)
对于ORM框架而言,数据源的组织是一个非常重要的一部分,这直接影响到框架的性能问题。本文将通过对MyBatis框架的数据源结构进行详尽的分析,并且深入解析MyBatis的连接池。本文首先会讲述MyBatis的数据源的分类,然后会介绍数据源是如何加载和使用的。紧接着将分类介绍UNPOOLED、POOLED和JNDI类型的数据源组织;期间我们会重点讲解POOLED类型的数据源和其实现的连接池原理。以下是本章的组织结构:一、MyBatis数据源DataSource分类二、数据源DataSource的创建转载 2020-08-01 12:59:09 · 383 阅读 · 0 评论 -
MyBatis事务管理机制(八)
MyBatis作为Java语言的数据库框架,对数据库的事务管理是其非常重要的一个方面。本文将讲述MyBatis的事务管理的实现机制。首先介绍MyBatis的事务Transaction的接口设计以及其不同实现JdbcTransaction和 ManagedTransaction;接着,从MyBatis的XML配置文件入手,讲解MyBatis事务工厂的创建和维护,进而阐述了MyBatis事务的创建和使用;最后分析JdbcTransaction和ManagedTransaction的实现和二者的不同特点。一、概转载 2020-08-01 12:46:50 · 227 阅读 · 0 评论 -
MyBatis缓存机制的设计与实现如何细粒度地控制你的MyBatis二级缓存(六)
本文如下组织结构:一个关于MyBatis的二级缓存的实际问题当前MyBatis二级缓存的工作机制mybatis-enhanced-cache插件的设计和工作原理mybatis-enhanced-cache 插件的使用实例1.一个关于MyBatis的二级缓存的实际问题现有AMapper.xml中定义了对数据库表ATable 的CRUD操作,BMapper定义了对数据库表BTable的CRUD操作;假设 MyBatis 的二级缓存开启,并且 AMapper 中使用了二级缓存,AMapper对应转载 2020-08-01 11:12:15 · 156 阅读 · 0 评论 -
Mybatis官方文档
MyBatis 是一款优秀的持久层框架,我们可以通过官方文档更好的学习和探究 MyBatis 框架原理和应用实践等。通过整理,可以分为以下八部分进行学习研究。简介入门XML 配置XML 映射文件动态 SQLJava APISQL 语句构建器类日志...转载 2020-04-09 14:34:38 · 139 阅读 · 0 评论 -
JDBC核心API使用
JDBC接口核心的APIjava.sql.* 和 javax.sql.*|- Driver接口: 表示java驱动程序接口。所有的具体的数据库厂商要来实现此接口。 |- connect(url, properties): 连接数据库的方法。 url: 连接数据库的URL ...原创 2020-04-08 11:28:44 · 167 阅读 · 0 评论 -
MyBatis缓存机制的设计与实现(五)
本文主要讲解MyBatis非常棒的缓存机制的设计原理,给读者们介绍一下MyBatis的缓存机制的轮廓,然后会分别针对缓存机制中的方方面面展开讨论。MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存: 一级缓存是Session会话级别的缓存,位于表示一次数据库会话的SqlSession对象之中,又被称之为本地缓存。一级缓存是MyBatis内部实现的一个特性,用户不能配置,默认情况下自动支持的缓存,用户没有定制它的权利(不过这也不是绝对的,可以通过开发插件对它进行修改); 二级..转载 2020-08-01 09:30:05 · 105 阅读 · 0 评论 -
MyBatis的二级缓存的设计原理(四)
MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。本文将全面分析MyBatis的二级缓存的设计原理1.MyBatis的缓存机制整体设计以及二级缓存的工作模式如上图所示,当开一个会话时,一个SqlSession对象会使用一个Executor对象来完成会话操作,MyBatis的二级缓存机制的关键就是对这个Executor对象做文章。如果用户配置了"cacheEnabled=true",那么MyBatis在为SqlSession对象创建Exe...转载 2020-08-01 08:07:23 · 97 阅读 · 0 评论 -
MyBatis的一级缓存实现详解 及使用注意事项(三)
MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上。MyBatis提供了一级缓存、二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能。本文的目的则是向读者详细介绍MyBatis的一级缓存,深入源码,解析MyBatis一级缓存的实现原理,并且针对一级缓存的特点提出了在实际使用过程中应该注意的事项。读完本文,你将会学到:1、什么是一级缓存?为什么使用一级缓存?2、MyBatis的一级缓存是怎样组织的?(即SqlSession对象中的缓存是怎转载 2020-07-31 20:18:14 · 229 阅读 · 0 评论 -
Mybatis关联查询问题(二)
mybatis 提供了高级的关联查询功能,可以很方便地将数据库获取的结果集映射到定义的Java Bean 中。下面通过一个实例,来展示一下Mybatis对于常见的一对多和多对一关系复杂映射是怎样处理的。设计一个简单的博客系统,一个用户可以开多个博客,在博客中可以发表文章,允许发表评论,可以为文章加标签。博客系统主要有以下几张表构成:Author表:作者信息表,记录作者的信息,用户名和密码,邮箱等。Blog表 : 博客表,一个作者可以开多个博客,即Author和Blog的关系是一对多。Post转载 2020-07-31 19:44:50 · 310 阅读 · 0 评论 -
Mybatis初始化机制详解(一)
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。1.MyBatis的初始化做了什么2. MyBatis基于XML配置文件创建Configuration对象的过程3. 手动加载XML配置文件创建Configuration对象完成初始化,创建并使用SqlSessionFactory对象4. 4. 涉及到的设计模式一、 MyBatis的初始化做了什么任何框架的初始化,无非是加载自己运行时所需要的配置信息。MyBat转载 2020-07-31 19:28:44 · 202 阅读 · 0 评论