首页 > 其他分享 > 【博学谷学习记录】超强总结,用心分享。mybatis框架的一些重要知识点。

【博学谷学习记录】超强总结,用心分享。mybatis框架的一些重要知识点。

时间:2022-12-28 13:36:33浏览次数:49  
标签:知识点 缓存 映射 作用域 二级缓存 超强 mybatis 属性

一、MyBatis框架

    1.1谈一谈对mybatis框架的理解。

      mybatis是一款优秀的持久层框架,一个半ORM(对象关系映射)框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手写设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置映射原生类型、接口和java的pojo为数据库中的记录

    1.2 在mybatis中${}和#{}的区别是什么?       

       #{}是占位符,预编译处理。${}是字符串替换。

       mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement中的set方法来赋值

       mybatis在处理${}时,就是把${}替换成变量的值

       使用#{}可以有效防止SQL注入,提高系统安全性。

    1.3 mybatis编程步骤是怎样的?

        1.创建sqlsessionFactory

        2.通过sqlsessionfactory创建sqlsession

        3.通过sqlsession执行数据库操作

        4.调用session.commit()提交事务

        5.调用session.close关闭会话

    1.4在 mybatis 中,resultType 和 ResultMap 的区别是什么?

       如果数据库结果集中的列名和要封装实体的属性名完全一直的话用resultType属性

       如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用resultmap属性,通过resultmap手动建立对象关系映射,resultmap要配置一下表和类的一一对应关系,所以说就算字段名和实体类属性名不一样也可以映射出来。

 

    1.5在 Mybatis 中你知道的动态 SQL 的标签有哪些?作用分别是什么?

      1.<if> if是为了判断传入的值是否符合某种规则,比如是否不为空。

      2.<where>where标签可以用来做动态拼接查询条件,当和if标签配合的时候,不用显示的声明类型where1=1这种条件

      3.<foreach>foreach标签可以把传入的集合对象进行遍历,然后把每一项的内容作为参数传到sql语句中。

      4.<include>include可以把大量的重复代码整理起来,当使用的时候直接include即可,减少重复代码的编写

      5.<set>set适用于更新中,当匹配某个条件后,才会对该字段进行更新操作。

    1.6谈一下对mybatis缓存机制的理解?

      mybatis有两级缓存,一级缓存是SqlSession级别的,默认开启,无法关闭;二级缓存是Mapper级别的,二级缓存默认是没有开启的,但是可以手动开启。

      1.一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session flush或close之后,Session中的所有cache就将清空。

      2.二级缓存及其作用域为Mapper,使用二级缓存属性类需要实现serializable序列化接口

      3.对于缓存数据更新机制,当某一个作用域进行了增加、删除、更新操作后,默认该作用域下所有的select中的缓存将被clear。

      需要在setting全局参数中配置开启二级缓存

 

 

     

      当我们的配置文件配置了 cacheEnabled=true 时,就会开启二级缓存,二级缓存是mapper 级别的,如果你配置了二级缓存,那么查询数据的顺序应该为:二级缓存→一级缓存→数据库。

 

  

 

标签:知识点,缓存,映射,作用域,二级缓存,超强,mybatis,属性
From: https://www.cnblogs.com/linwenguan/p/17009932.html

相关文章

  • 项目知识点
    1.input中的placeholder属性placeholder属性提供可描述输入字段预期值的提示信息(hint)。该提示会在输入字段为空时显示,并会在字段获得焦点时消失。2.两个按钮间想要有间......
  • Java千问13:Java循环语句的几个冷门知识点你都知道吗?
    我们在进行Java开发的时候,经常会用到循环结构,但是有几个关于循环的“冷门”知识点,不知道你是不是都已经掌握了呢?我们一起来看看一、大括号可以不写吗?我们都知道,如果每次循......
  • mybatis批量update(mysql)
    批量插入:<insertid="batchInsert">insertintotestTable(id,content)values<foreachcollection="list"item="item"index="index"separator=",">......
  • Mybatis 的<trim>标签用法 prefix prefixOverrides suffix suffixOverrides
    <trimprefix=""suffix=""suffixOverrides=""prefixOverrides=""></trim>prefix:在trim标签内sql语句加上前缀。prefixOverrides:指定去除多余的前缀内容如:prefixOve......
  • 【SSM框架】MyBatis核心配置文件详解
    1.MyBatis核心配置文件之environments<!--environments:配置多个连接数据库的环境属性:default:设置默认使用的环境的id--><environmentsdefault="development"><!......
  • 四、数据结构第四节——二叉树(知识点)
    四、数据结构第四节——二叉树今天开启美妙的二叉树的学习~~~“树”是我们第一次见到的”非线性”的数据结构。二叉树:是树上每个节点都只有两个子节点的简单的树。知......
  • mybatis报错
     经研究发现是少了依赖:<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><......
  • 基于springboot+mybatis+mysql+html实现校园宿舍管理系统
    @目录一、系统简介二、系统主要功能界面三、其它系统四、源码下载一、系统简介本系统功能模块主要分为:信息浏览浏览功能、宿舍打卡浏览功能、学生提交信息功能、宿舍搜索......
  • MyBatis四大参数两种写法
    MyBatis四大参数两种写法1.在主配置文件中,直接写到value值里面  2.四大参数写入单独配置文件开始是  为了避免以后其他框架冲突都加个前缀jdbc.  主......
  • 10 种超好用的 MyBatis 写法,同事都说好用!
    作者:smile_lg来源:blog.csdn.net/smile_lg/article/details/71215619用来循环容器的标签forEach,查看例子foreach元素的属性主要有item,index,collection,open,separator,clo......