Mybatis日志管理
日志门面SLF4J和Apache Commons-Logging都广泛使用
日志实现一般使用logback
MyBatis动态SQL
小于号改为<转义符
常用转义字符:
半方大的空白
全方大的空白  
不断行的空白格
< 小于 <
> 大于 >
& &符号 &
" 双引号 "
MyBatisUtils.java文件:
package com.test.mybatis.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
public class MyBasisUtils {
//利用static(静态)属于类,不属于对象,且全局唯一
private static SqlSessionFactory sqlSessionFactory=null;
//利用静态块在初始化类时实例化SQLSessionFactory
static {
Reader reader=null;
try {
reader= Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
//初始化错误时,通过抛出异常Exception
throw new ExceptionInInitializerError(e);
}
}
public static SqlSession openSession(){
//默认sqlSession对自动提交的事务数据(commit)
//设置false代表关闭自动提交,改为手动提交事务数据
return sqlSessionFactory.openSession(false);
}
public static void closeSession(SqlSession sqlSession) {
if (sqlSession != null) {
sqlSession.close();
}
}
}
Mybatis二级缓存
LFU:最近最少使用:移除最近访问频率最低的对象,移除最近一段时间内访问次数最少的
LRU:根据时间,将最久未使用的移除
OneToMany对象关联查询
一对多:
多对一查询:
分页插件PageHelper
不同数据库的分页:
MyBatis配置C3P0连接池
MyBatis批处理
删除:
MyBatis注解开发
XML适合大的团队协作,注解适合小型的