-
配置文件
- 核心配置文件如何连接数据库,映射文件如何操作数据库
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> //引入配置文件,比如druid的 <properties resource="org/mybatis/example/config.properties"/> //别名 <typeAliases> <package name="domain.blog"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> //映射文件和mapper接口在的文件一,否则会失效 <mappers> <package name="org.mybatis.builder"/> </mappers> </configuration>
-
获取参数
-
${}和#{}
- ${}本质是字符串拼接,有sql注入问题
- #{}本质是占位符赋值;
-
单个自变量string,int,包装类
- 使用#{},传过来的值和变量无关
- 使用${},会直接拼接,而在sql中字符串是需要有单引号的
-
多个变量
- 比如说username,password
- 接收的参数有多个时,自动会放在map集合中,以param为key
-
访问时,可以使用的方式:
- 写mapper接口时加上@param注解
- 映射文件中#{param0} #{param1}
- 参数是对象时,比如添加,修改;直接使用java的实体类
-
查询
-
单个查询
-
特殊的查询
-
模糊查询like
- 模糊查询包含在' '中,#{mohu}在解析的时候会解析为?,是属于' '中的一部分,不会占位。或者使用以下方式:
-
批量删除
-
动态设置表名
- #{}会自动加' ',所以动态设置表名的时候只能使用${}
-
获取自增的主键
- jdbc中
- mybatis中
-
-
多对一的映射
-
级联
-
association
-
分步查询
-
执行查询会先查主查询。在查子查询;
-
分步查询的优势可以实现延迟加载(懒加载)
-
延迟加载
-
<settings> //懒加载和这两个属性有关 <setting name="lazyLoadingEnabled"value="true"/> //按需记载 <setting name="aggressiveLazyLoading" value="false"/> </settings>
- 因为setting是全局配置,当实现了延迟加载时,association中的 fetchType可以开启立即加载
-
-
-
-
缓存
-
一级缓存
- 一级缓存是sqlsession级别的,同一个查询,只会执行一次查询
-
二级缓存
- 操作
缓存命中率,只有二级缓存
- 操作
- 查询的顺序
-
-
分页插件
-
步骤
-
使用
-
-
- 核心配置文件如何连接数据库,映射文件如何操作数据库
mybatis
于 2023-10-19 01:03:02 首次发布