MyBatis

31 阅读1分钟

MyBatis

一、基础操作

mybatis-config.xml

关联属性文件
MyBatis特殊配置
配置别名
配置环境
    事务
    数据源
关联Mapper.xml文件

SqlSessionFactory

SqlSession

CRUD:
    selectOne
    insert
    update
    delete
    
Mapper接口:getMapper

Mapper.xml

ResultMap:
    关联关系:association、collection
    id
    result
    
动态SQLsql / include
    where
    if
    set
    foreach
​
取值:
    符号:
        #:占位符,不会出现SQL注入
        $:直接拼接SQL,会出现SQL注入
    单个参数:可以随意写变量名,如果单个参数是简单类型,就直接取值,如果是复杂类型(Map、自定义对象)需要写Map或对象中的key/属性名
    多个参数:使用@Param注解标识参数名,或者使用arg0,arg1...或param1,param2...

二、缓存

一级缓存

生命周期是在一个SqlSession中的,key为执行的SQL+参数,也就意味着必须要在同一个sqlSession中执行多条相同的SQL以及参数也相同才能用上一级缓存。
一级缓存是默认开启的,是存在内存中的。

二级缓存

二级缓存是命名空间级别的,可以跨SqlSeesion命中缓存,key同样是SQL+参数,需要自己指定缓存存储介质。
​
二级缓存需要在对应的Mapper.xml文件中开启。
​
注意:二级缓存存在一个缺陷,如果跨命名空间做增删改操作,缓存无法检测到,可能出现脏数据的问题。

三、插件(拦截器)

MyBatis提供的一个拓展机制,我们可以通过实现Interceptor接口,来对要执行的SQL语句做拦截处理。
​
分页插件
​
性能统计