Mybatis连接池、缓存、动态sql、多表操作

Mybatis连接池:

Mybatis 将它自己的数据源分为三类:
UNPOOLED: 不使用连接池的数据源
POOLED: 使用连接池的数据源(常用)
JNDI: 使用 JNDI 实现的数据源(JNDI:MyBatis 会从服务器上查找 DataSource 实例,然后返回使用,如:tomcat是使用dhcp)
而调用连接池的方式还是使用传统的java.sql.DataSource接口实现

数据源配置在 SqlMapConfig.xml 文件中, 具体配置如下:



   
   
   
   


缓存

Mybatis 中缓存分为

一级缓存

一级缓存是 SqlSession 级别的缓存,只要 SqlSession 没有 flush 或 close,它就存在。


sqlSession.clearCache();//此方法也可以清空缓存

一级缓存是 SqlSession 范围的缓存,当调用 SqlSession 的修改,添加,删除, commit(), close()等

二级缓存

第一步:在 SqlMapConfig.xml 文件开启二级缓存





因为cacheEnabled的取值默认就为 true,所以这一步可以省略不配置。为 true 代表开启二级缓存;为false 代表不开启二级缓存
配置实体类相关的 Mapper 映射文件

标签表示当前这个 mapper 映射将使用二级缓存,区分的标准就看 mapper 的 namespace 值。






配置 Mapper上面的 useCache 属性



将 UserDao.xml 映射文件中的
        //这里是配置了sql语句抽取的注入
        
            
                
                    #{uid}
                
            
        
    

where标签相当于sql语句的where,
可以不用每次使用标签时都用where1=1


你可能感兴趣的:(Mybatis连接池、缓存、动态sql、多表操作)