草庐IT

MyBatis(二二):SQL片段(sql标签)

一、什么是SQL片段就是将我们Mapper.xml文件中部分SQL语句拿出来单独用一个sql标签进行标记,这个sql标签就是一个SQL片段。二、为什么要用到SQL片段这个sql标签可以被引用,这样需要用到这个sql标签中的SQL语句的地方直接引用就可以,如此一来就提高了SQL代码的复用性,而不至于有大片的重复SQL。三、SQL片段的具体使用sqlid="select-author-title">iftest="author!=null">andauthor=#{author}if>iftest="title!=null">andtitle=#{title}if>sql>selectid="Qu

MyBatis(二三):动态SQL之Foreach

前面我们已经学习了动态SQL的if、where、set、choose(when,otherwise),今天我们来学习剩下的foreach。什么时候用到foreach呢?比如说我们要查询一个表中id为1,3,4的数据,我们应该写SQL语句为:select*fromTABLEwhere(id=1orid=3orid=4)这时候我们就可以把需要查的这些id的数据存放到一个集合中,通过遍历这个集合来查询到这些数据,这种时候我们就用到foreach了。 下面我们来看foreach的具体使用。还是先在BlogMapper接口中声明一个方法:ListQueryBlogsByForeach(Mapmap);然

MyBatis(二三):动态SQL之Foreach

前面我们已经学习了动态SQL的if、where、set、choose(when,otherwise),今天我们来学习剩下的foreach。什么时候用到foreach呢?比如说我们要查询一个表中id为1,3,4的数据,我们应该写SQL语句为:select*fromTABLEwhere(id=1orid=3orid=4)这时候我们就可以把需要查的这些id的数据存放到一个集合中,通过遍历这个集合来查询到这些数据,这种时候我们就用到foreach了。 下面我们来看foreach的具体使用。还是先在BlogMapper接口中声明一个方法:ListQueryBlogsByForeach(Mapmap);然

MyBatis(二四):缓存——一级缓存

MyBatis的缓存分为一级缓存和二级缓存。先看一下MyBatis官方文档给出的说明:MyBatis内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。为了使它更加强大而且易于配置,我们对MyBatis3中的缓存实现进行了许多改进。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。要启用全局的二级缓存,只需要在你的SQL映射文件中添加一行:基本上就是这样。这个简单语句的效果如下:映射语句文件中的所有select语句的结果将会被缓存。映射语句文件中的所有insert、update和delete语句会刷新缓存。缓存会使用最近最少使用算法(LRU,LeastRecen

MyBatis(二四):缓存——一级缓存

MyBatis的缓存分为一级缓存和二级缓存。先看一下MyBatis官方文档给出的说明:MyBatis内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。为了使它更加强大而且易于配置,我们对MyBatis3中的缓存实现进行了许多改进。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。要启用全局的二级缓存,只需要在你的SQL映射文件中添加一行:基本上就是这样。这个简单语句的效果如下:映射语句文件中的所有select语句的结果将会被缓存。映射语句文件中的所有insert、update和delete语句会刷新缓存。缓存会使用最近最少使用算法(LRU,LeastRecen

MyBatis(二五):缓存——二级缓存

上一篇我们学习了一级缓存,这次我们来学习二级缓存。一、什么是二级缓存二级缓存也叫全局缓存,是namespace级别的缓存,每一个命名空间对应一个二级缓存。二、二级缓存的工作机制1.每个SqlSession对应一个一级缓存。2.当SqlSession关闭时,对应的一级缓存就会消失,但是如果我们开启了二级缓存,一级缓存的内容就会在会话关闭时存入对应的二级缓存中。3.此时新的SqlSession会话就可以从二级缓存中获取内容。三、二级缓存的具体应用 1.mybatis-config.xml核心文件配置settings>settingname="cacheEnabled"value="true"/>s

MyBatis(二五):缓存——二级缓存

上一篇我们学习了一级缓存,这次我们来学习二级缓存。一、什么是二级缓存二级缓存也叫全局缓存,是namespace级别的缓存,每一个命名空间对应一个二级缓存。二、二级缓存的工作机制1.每个SqlSession对应一个一级缓存。2.当SqlSession关闭时,对应的一级缓存就会消失,但是如果我们开启了二级缓存,一级缓存的内容就会在会话关闭时存入对应的二级缓存中。3.此时新的SqlSession会话就可以从二级缓存中获取内容。三、二级缓存的具体应用 1.mybatis-config.xml核心文件配置settings>settingname="cacheEnabled"value="true"/>s

MyBatis(二六):缓存——缓存原理

首先来思考一下,在开启了二级缓存的情况下,一个用户查询数据经历的过程是什么样的。我们看一下,下面这张图: 用户先去二级缓存中去寻找数据,如果找不到再去一级缓存寻找数据,如果还是找不到那么去数据库中进行查询。我么具体来看一下:@TestpublicvoidgetUserById(){SqlSessionsqlSession=MyBatisUtil.getSqlSession();UserMapperuserMapper=sqlSession.getMapper(UserMapper.class);Useruser=userMapper.getUserById(10001);System.out.

MyBatis(二六):缓存——缓存原理

首先来思考一下,在开启了二级缓存的情况下,一个用户查询数据经历的过程是什么样的。我们看一下,下面这张图: 用户先去二级缓存中去寻找数据,如果找不到再去一级缓存寻找数据,如果还是找不到那么去数据库中进行查询。我么具体来看一下:@TestpublicvoidgetUserById(){SqlSessionsqlSession=MyBatisUtil.getSqlSession();UserMapperuserMapper=sqlSession.getMapper(UserMapper.class);Useruser=userMapper.getUserById(10001);System.out.

MyBatis的简介及测试

1、MyBatis简介1.1、什么是MyBatisMyBatis是一款优秀的持久层框架MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的实体类【PlainOldJavaObjects,普通的Java对象】映射成数据库中的记录。MyBatis本是apache的一个开源项目ibatis,2010年这个项目由apache迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github.Mybatis官方文档:http://www.mybatis.org/mybatis-