mybatis学习二
Mybatis缓存
1:缓存的概念
当用户频繁查询某些固定 的数据时,第一次将这些数据从数据库查询出来,保存在缓存中(内存,高速磁盘)中
当下次用户再次查询这些数据时,不用再通过数据库查询,而是去缓存里面查询,减少网络连接和数据库查询带来的损耗
从而提高我们的查询效率,减少高并发访问带来的系统性能问题
2:Mybatis的缓存分为一级缓存和二级缓存
Mybatis的一级缓存是指在同一个sqlSession里面应用.
Mybatis的二级缓存可以跨越sqlSession,以mapper为单位创建,是系统级缓存.
Map<key,value>
3:一级缓存
当第一次发出sql请求的时候,Mybatis从数据库查询,并将结果存入一级缓存
当在同一个sqlSession里面发出同样的sql查询请求,Mytatis会直接从缓存中查找
如果没有,则从数据库中查找
注意:
a:Mybatis默认支持一级缓存,不需要另外的配置,但是在跟spring整合的时候,进行mapper代理开发
的方式时,mybatis的一级缓存是不存在的,因为代理模板每次调用完都会个关闭sqlSession
b:如果sqlSessioon里面出现commit操作,sqlSession中的缓存会被全部清空,避免出现脏读
c:一级缓存的存在形式(map)的数据结构
key:statementId+rowBounds+sql+sql参数
value:数据
4:二级缓存
* 如图所示:
a:Mybatis的二级缓存是mapper级别的,就是活二级缓存是以mapper配置文件的namespace为单位创建的
b:Mybatis的二级缓存需要在setting里面加入配置(默认是开启的)
<setting name = "cacheEnabled" value="true"/>
c:需要在mapper的映射文件中加入<cache/>标签才可以触发此映射文件开启二级缓存
d:在映射文件用到的查询对象必须序列化(实体类)
e:如果需要禁用某个statement的缓存,可以在这个statement里面单独设置 useCache="false"
* 二级缓存的相关配置
Mybatis与Spring的整合
1:引入spring和mybatis各自的jar包
2:引入spring与mybatis整合的包
mybatis-spring-1.2.4.jar
3:当有jar包冲突的时候,保留高版本的jar包
4:在spring的配置文件applicationContext.xml中
* 配置管理sqlSessionFactory
* 配置管理数据源
* 配置管理mapper对象
5:两种开发方式:
* 传统的接口和实现方式
* 基于mapper动态代理的方式
1:Mybatis的逆向工程
为了提高开发效率,Mybatis官方提供了一个逆向工程的组件,来根据数据库中的某个表生成对应
的实体类,mapper.xml,mapper.java
2:怎么做
* 需要一个jar包,一个逆向工程的配置文件,一小段java代码
* 新建一个java工程
* 更改逆向工程的配置文件
a 数据库信息
b mapper接口的文件位置
c mapper映射 的文件位置
b 加入需要逆向生成的表
* 运行主程序
总结:可以借鉴逆向工程生成代码的思想,如果字段过多,可以应用逆向生成的实体类以及增删改查的方法
其他的方法建议自己扩充编写
注意:要新建工程进行逆向工程,不要在开发的项目生成,会覆盖原来的工程
mybatis学习二的更多相关文章
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- MyBatis学习(二)---数据表之间关联
想要了解MyBatis基础的朋友可以通过传送门: MyBatis学习(一)---配置文件,Mapper接口和动态SQL http://www.cnblogs.com/ghq120/p/8322302. ...
- MyBatis学习(二)
前言 昨天的博客简单的记录了MyBatis的起源.作用.配置以及一个简单的查询例子.写到一半的时候,觉得已经学会了MyBatis,可是全写完的时候才发现,如果多个参数查询,如何表的名字与类字段名不一样 ...
- MyBatis学习(二):与Spring整合(非注解方式配置MyBatis)
搭建SpringMVC的-->传送门<-- 一.环境搭建: 目录结构: 引用的JAR包: 如果是Maven搭建的话,pom.xml的配置如下: <?xml version=" ...
- mybatis学习二 全局配置文件常用配置
全局配置文件的详细解析可以参考mybatis的中文参考文档 1.全局配置文件中内容1.1 <transactionManager/> type 属性可取值1.1.1 JDBC,事务管理使用 ...
- mybatis 学习二 MyBatis简介与配置MyBatis+Spring+MySql
1.2.2建立MySql数据库 在C:\Program Files\MySQL\MySQL Server 5.7\bin下面: 首先连接MySQL: mysql -u root -p ...
- mybatis 学习二 conf xml 配置信息
xml映射配置文件 这个xml文件主要包括一下节点信息 * properties 属性 * settings 设置 * typeAliases 类型命名 ...
- MyBatis 学习二之简单练习巩固
1.新建一个maven项目并在pom.xml中添加依赖 2.项目架构 配置文件:SqlMapConfig.xml <?xml version="1.0" encoding ...
- java mybatis学习二
<select id="find1" parameterType="java.util.HashMap" resultType="com.xxx ...
随机推荐
- 循环while do---while for循环
一.循环结构 (.^▽^) 1.循环不是无休止进行的,满足一定条件的时候循环才会继续,称为"循环条件",循环条件不满足的时候,循环退出 2.循环结构是反复进行相同的或类似的一系列操 ...
- sys用户密码丢失找回密码的步骤和命令
假设你的sys用户密码丢失,写出找回密码的步骤和命令? 1.确认哪个数据库实例的sys用户密码丢失:(例:数据库实例为orclA) 2.进入数据库实例的目录中找到PWDorclA.ora文件:(例目录 ...
- .Net开发之旅(一个年少轻狂的程序员的感慨)
高端大气上档次.这次当时一个身为懵懂初中生的我对程序员这一职位的描述.那时虽不是随处都能看到黑客大军的波及,但至少是知道所谓的黑客爸爸的厉害,一言不合说被黑就被黑.对于懵懂的我那是一种向往.自己也曾想 ...
- 解决办法:由于oracle版本不同导致导入数据时失败
在向一个数据库导入dmp文件时,出现了如下错误 经查询,是由于"导出的dmp文件与导入的数据库的版本不同造成的" 用notepad查看dmp文件的版本,看看是否和数据库版本一致 解 ...
- 凡事预则立(Beta)
听说--凡事预则立 吸取之前alpha冲刺的经验教训,也为了这次的beta冲刺可以更好更顺利地进行,更是为了迎接我们的新成员玮诗.我们开了一次组内会议,进行beta冲刺的规划. 上一张我们的合照: 具 ...
- 201621123035 《Java程序设计》第1周学习总结
1.本周学习总结 本周学习内容:Java平台概论.认识JDK规范与操作.了解JVM.JRE与JDK.撰写Java原始码.path是什么 关键词:JVM.JRE.JDK 联系:JVM是Java虚拟机的缩 ...
- iOS开发-即时通信XMPP
1. 即时通信 1> 概述 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能 ...
- ThreadLocal就是这么简单
前言 今天要研究的是ThreadLocal,这个我在一年前学习JavaWeb基础的时候接触过一次,当时在baidu搜出来的第一篇博文ThreadLocal,在评论下很多开发者认为那博主理解错误,给出了 ...
- submit()提交表单时,显示警示框
我同事在实现submit()提交表单时,想要页面弹出警示框. 但是折腾了几小时后发现,submit()始终不执行. 她的代码如下: $(document).ready(function(){ $(&q ...
- raid5 / raid5e / raid5ee的性能对比及其数据恢复原理
RAID 5 是一种存储性能.数据安全和存储成本兼顾的存储解决方案. RAID 5可以理解为是RAID 0和RAID 1的折中方案.RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低 ...