![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis学习
深秋凌冽
这个作者很懒,什么都没留下…
展开
-
Mybatis学习之路(二):property元素应用
1.property元素 在配置mybatis与SQL映射时时常会用到property元素,例如配置dataSource时。注意要区别的是,property在中文翻译过来是属性,但元素内的attribute也会翻译成属性,所以个人倾向用英文。property元素也是一种键值的格式:<property name="username" value="123"/>2.预先设置property元素原创 2017-11-05 16:23:28 · 3659 阅读 · 0 评论 -
Mybatis的二级缓存(三)--二级缓存实现基本原理之二级缓存的创建
引子 前面已经讲了mybatis的二级缓存的实现方式和ehcache框架的利用,现在来看一看mybati二级缓存的实现基础首先我们知道二级缓存是mapper级别的数据域,那么二级缓存到底是如何创建,保存以及是如何获取的呢?其实二级缓的cahce在SqlSessionFactoryBuilder解析mmaper的时候就已经开始创建了只是没有数据而已,这也说明了为什么二级缓存不是session级...原创 2018-05-04 15:32:10 · 256 阅读 · 0 评论 -
mybatis二级缓存(二)-ehcache缓存框架
引子: 上一篇文章讲了mybatis的二级缓存方式,但同时mybatis也支持其他的缓存框架,只要实现了mybatis下的cache接口即可。利用ehcache缓存框架首先首先就是基本的jar包,包括ehcache.jar和mybatis-ehcache.jar以及slf4j.下面就来看看ehcache的缓存框架使用方式首先配置文件: ehcache.xml放在classpath根目录...原创 2018-05-03 18:50:37 · 307 阅读 · 0 评论 -
Mybatis的二级缓存(一)
引子: 再上一篇文章中介绍了一级缓存,但是也可以看出一些一级缓存的局限,一是一级缓存的范围是session级别的,不同的session之间无法实现缓存共享,二是一级缓存是放到内存中的一旦数据过大有可能会出现内存不足的情况。为此mybatis还有一种二级缓存机制。二级缓存 首先二级缓存的范围要比session大属于mapper级别的,即在同一个namespace下的缓存,因此可以实现不同se...原创 2018-05-03 18:06:56 · 280 阅读 · 0 评论 -
Mybatis的一级缓存
引子: 在现在的网络中,缓存是一个很重要的概念如果没有缓存机制的话,非常影响数据的读取效率,那么mybatis有吗,当然有啦,mybatis中有两种缓存一种时一级缓存,一种是二级缓存。先来讲一讲一级缓存一级缓存 首先一级缓存是mybatis的自动的缓存,即不需要开启也不能关闭(不过mybatis的利用插件设置关闭),但我们可以人为的清除一级缓存。其次一级缓存的域只针对一个sessi...原创 2018-04-17 21:49:56 · 347 阅读 · 0 评论 -
mybatis的懒加载
在Mybatis中有一种懒加载机制也叫做延迟加载,在前面的文章中,我们可以看到,对于pojo对象中内部的自定义对象要么专门写处理器处理要么利用association或者collection标签来进行关联。再利用标签是我列举了三种方法,其中有利用select属性来实现关联的,不过会产生N+1问题,但既然有整个属性必然有作用,而主要的作用便是可以使用懒加载。 懒加载是一种延迟技术,当我们没有使用被标...原创 2018-04-17 20:08:36 · 8808 阅读 · 0 评论 -
Mybatis的关联映射之一对多
上一篇讲了一对一,那么现在来讲一对多,这里用到了两张表:CREATE TABLE `article` ( `article_id` int(11) NOT NULL AUTO_INCREMENT, `date` datetime DEFAULT NULL, `content` text COLLATE utf8_bin, `blog_id` int(11) DEFA...原创 2018-04-10 11:38:25 · 4413 阅读 · 0 评论 -
Mybatis的关联映射之一对一
在数据库设计中我们会都会涉及到表与表之间的关系,如:一对一,一对多,多对多的情况,那么在java中为了反映数据库中的表都会设计基本的POJO对象来进行数据的传递,而在POJO对象中为了反映数据库中的关联关系,通常都会在该对象加入其他表的对应对象:比如在一对一关系中,一个用户只能有一个博客,一个博客只对应一名用户。 工程目录: mysql:CREATE TABLE `blog` ( ...原创 2018-04-09 16:07:52 · 257 阅读 · 0 评论 -
Mybatis学习之路(一)
1. Mybatis的作用 Mybatis是一种框架,可以定制SQL、存储过程以及高级映射,总的来说就是可以帮助我们很好的解决手写JDBC代码的麻烦,包括建立连接和对结果集的处理等等,可以很大程度上简化代码。2. Mybatis的使用方法 Mybatis的核心是SqlSessionFactory实例,通过该实例可以为每一个线程创建一个SqlSession利用其达到对数据库的操作原创 2017-11-03 14:15:27 · 241 阅读 · 0 评论 -
Mybatis学习之路(三):typeAliases应用
在上一篇中我们映射SQL语句时,可以看到resultType的返回结果集中的的元素的类使用完全限定名,有时候会偏长所以我们可以在配置Mybatis时利用typeAliases元素为自己的类设计别名从而简化:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config原创 2017-11-03 15:58:15 · 237 阅读 · 0 评论 -
mybatis二级缓存(四)-二级缓存实现基本原理之二级缓存的使用原理
引子 上一篇文章以及讲解了mybatis自带的二级缓存是如何被创建的,现在我们就来看看二级缓存的是如何使用的其实在前面的介绍二级缓存的时候我说过,二级缓存是利用一级缓存的数据在SqlSession调用commit或者close时导入到二级缓存的,那么如果在利用一个SqlSession实现了更新等操作时便会刷新一级缓存从而导致在提交了事务或关闭时,一级缓存传入到二级缓存的数据是空的。从结果来说...原创 2018-05-04 17:20:54 · 10980 阅读 · 3 评论