Mybatis高级用法

一、mybatis的关联查询与子查询1.关联查询​​​​​​​​​​2.子查询二、mybatis的缓存机制三、springboot和mybatis整合四、项目入门CRUD前端后端联合调用
摘要由CSDN通过智能技术生成

一、mybatis的关联查询与子查询

1.关联查询

1.1 resultMap规则:

1.如果映射的字段与对象属性一致,则可以省略不写
2.最好保留主键的字段信息 <id/>
3.关联封装中 - - - > 单独封装则使用  association   
4.如果遇到关联封装,必须配置全部映射关系 (但是属性名和字段一致)可以自动映射
				自动映射 autoMapping = “true”
           		自动映射的前提条件:关联查询,属性名和字段一致
<association property="在pojo中配置的一对一对象的属性" javaType="指定属性的类型 即 pojo类的路径">
    <id property="指定类型的主键属性" column="数据库中的字段"/>
    <result column="指定类型的其他属性" property="数据库中的字段"/>
</association>

1.2步骤如下:

​​​​​​​​​​​​代码:

2.子查询(一对一)

2.1思路如图:

在这里插入图片描述

2.2步骤如下:

在这里插入图片描述

3.子查询(一对多)

在这里插入图片描述

4.驼峰规则映射

驼峰规则映射:
说明:因为字段名和属性经常不一样,通过驼峰映射,自动映射
全局配置 在核心配置文件中
1.如果开启驼峰命名规则 可以简化赋值过程

<!--Mybatis的核心配置-->
<settings>
    <!--    开启驼峰映射规则 dept_id自动映射到deptId -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

二、mybatis的缓存机制

1.什么是缓存机制?

说明:有效的降低访问服务器的次数,即问过的回答过的答案,存在缓存里,下次再问就不用访问服务器
扩展:
1.mybatis自身缓存:一级缓存/二级缓存
2.Redis缓存(现在主流) 存入了大量的数据,读取10万次/秒,写8.6万次/秒

1.1一级缓存(sql语句执行一次)

概念说明:mybatis默认开启一级缓存,一级缓存可以在**同一个sqlsession(会话)**对象中查询相同的数据,可以实现数据共享的
在这里插入图片描述

1.2二级缓存

说明:二级缓存mybatis默认是开启的,但是需要手动标识是否需要缓存,在同一个sqlsessionfactory内部有效,sqlsessionfactory是sqlsession(会话)的爸爸,即一级缓存的上级,范围更广
配置:全局配置和局部配置
二级缓存说明:sqlsession查询数据之后,会把查询后的数据保存到一级缓存中,但不会立即将缓存交给二级缓存sqlsessionfactory。此时作用域还在一级,所以解决办法是:必须将一级缓存执行成功之后,关闭一级缓存(表示会话正常执行用完且关闭)
在这里插入图片描述

三、mybatis框架小结

1.orm思想 :

对象关系映射,用于实现不同类型系统的数据库之间的转换
用对象操作数据库–封装对象操作数据库

  • 对象与数据库对应–映射
  • 对象的属性与表中的字段对应–映射
1.1JDBC弊端 :

巴拉巴拉

1.2JDBC优点 :

操作数据库最快的玩意

2.mybatis是啥:

是基于orm思想的持久层框架,半自动orm

3.mybatis使用步骤:

3.1 导入jar包

课堂使用的是springboot整合mybatis版本,所以在pom.xml 导入俩包,mybatis和JDBC

3.2 mysql的驱动版本

驱动的配置巴拉巴拉 数据库的value是com.mysql.cj.jdbc.Driver (高版本多了个cj)

3.3 高版本数据库要搭载高版本maria
3.4 编辑核心文件
  • 数据库环境的配置
  • Mapper接口与映射文件的配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--核心配置文件-->
<configuration>
    <!--Mybatis的核心配置-->
    <settings>
        <!--    开启驼峰映射规则 dept_id自动映射到deptId -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <typeAliases>
        <!-- package name="指定包路径 配置了包路径,映射对象时会自动拼接" -->
        <package name="com.jt.pojo"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值