MyBatis的二级缓存

mybatis的二级缓存二级缓存的原理二级缓存的原理和一级缓存一样第一次查询会将数据放到缓存中然后第二次查询直接去缓存读取。但是一级缓存是基于sqlsession的二级缓存是基于mapper的namespace的。也就是说多个sqlsession可以共享同一个二级缓存区域。如果两个mapper的namespace相同那么即使是两个mapper这两个mapper执行sql查询的数据也将保存在相同的二级缓存区域中。​如何使用二级缓存注意_user需要实现序列化接口。开启二级缓存和一级缓存不一样二级缓存需要手动
阅读更多

MyBatis的一级缓存

在mybatis中一级缓存是默认开启的。在一个sqlsession中对user表进行两次根据id的查询查看发出sql语句的情况。根据id查询用户@paramid@return@select()userfinduserbyid(integerid)_@beforepublicvoidbefore()throwsexception{systemoutprintln(inputstreamresourceasstream=resourcesgetresourceasstream(sqlsessionfactor
阅读更多

MyBatis缓存的概念

缓存回顾缓存就是内存中的数据常常来自对数据库查询结果的保存。使用缓存可以避免频繁与数据库交互进而提高响应速度。mybatis对缓存的支持mybatis也提供了对缓存的支持分为一级缓存和二级缓存。可以用下面的图来理解_​一级缓存是sqlsession级别的缓存。在操作数据库时需要构造sqlsession对象在对象中有一个hashmap的数据结构用于存储缓存数据。不同的sqlsession之间缓存的数据区域(hashmap)是不同的。二级缓存是mapper级别的缓存。多个sqlsession操作同一个mapp
阅读更多

MyBatis的注解实现复杂映射开发

xml配置方式实现复杂映射回顾​实现复杂映射我们之前可以在映射文件中通过配置来实现使用注解开发后我们可以通过@results注解@result注解@one注解和@many注解组合完成复杂关系的配置。注解说明@results代替的是标签该注解中可以使用单个的@result注解也可以使用@result集合。使用方式_@results({@result()@result()})或者@results(@result())@result代替了标签和标签@result中的属性介绍column_数据库中的列名prope
阅读更多

MyBatis常用注解及基本增删改查的注解实现

mybatis的常用注解注解可以减少mapper文件的编写常用注解如下_@insert_实现新增@update_实现更新@delete_实现删除@select_实现查询@result_实现结果集封装@results_可以和@result一起使用封装多个结果集@one_实现一对一结果集封装@many_实现多对多结果集封装mybatis的增删改查数据库配置依旧保存不变jdbcproperties#新版驱动名称发生了改变#jdbcdriver=commysqljdbcdriverjdbcdriver=commy
阅读更多

MyBatis复杂映射开发之多对多查询

多对多查询的模型用户表和角色表的关系为一个用户有多个角色一个角色被多个用户使用。多对多查询的需求_查询所有用户的同时查询出该用户对应的所有角色。@startuml!themeplaintoptobottomdirectionskinparamlinetypeorthoclasssys_role{rolename_varchar()roledesc_varchar()id_int()}classsys_user_role{userid_int()roleid_int()}classnodeas{userna
阅读更多

MyBatis复杂映射开发之一对多查询

一对多查询模型用户和订单表的关系为一个用户有多个订单一个订单只能属于一个用户。一对多查询需求_查询多有用户与此同时查询用户具有的订单信息。一对多查询语句对应的sql语句selectuoordertimeototalouidfromuseruleftjoinordersoonuid=ouid_查询结果如下_idusernamepasswordbirthdayordertimetotaluidlucy____lucy____tom____代码实现修改user实体用户信息@name_user@author_te
阅读更多

MyBatis复杂映射开发之一对一查询

一对一查询需求用户表和订单表的关系为_一个用户可以有多个订单一个订单只能从属于一个用户一对一查询需求_查询一个订单同时查询出该订单所对应的用户对应的sql语句_selectfromordersouseruwhereouid=uid查询结果如下_idordertimetotaluididusernamepasswordbirthday__lucy____lucy____tom__需求分析具体实现创建user和order实体user用户信息@name_user@author_terwer@date__clas
阅读更多

Mybatis基本流程及配置文件解析

mybatis基本流程利用resources工具类加载配置文件并转换成输入输出流利用解析的配置创建sqlsessionfactory工厂生产sqlsessionsqlsession调用方法mybatis配置文件分析sqlmapconfigxmlmybatis核心配置文件层级mybatis常用配置解析输出日志在sqlmapconfigxml添加如下配置_)environments标签事务管理器(transactionmanager)类型有两种_jdbc_直接使用jdbc的提交和回滚设置依赖于从数据源得到的链
阅读更多

MyBatis的基本使用

快速入门mybatis的官网_https_mybatisorgmybatismybatis的开发步骤添加mybatis的坐标创建user数据表createtable`user`(`id`int()notnullauto_increment`username`varchar()defaultnull`password`varchar()defaultnullprimarykey(`id`))engine=innodbauto_increment=defaultcharset=utfmb_insertinto
阅读更多