myBatis的配置
1.mybatis-config.xml
2.XXX-mapper.xml 配置sql语句
需要转译的字符
< <> ><> <>& &' '" "
SELECT LAST_INSERT_ID() INSERT INTO user (u_name) VALUES (#{u_name})
3.日志信息配置 log4j.properties (log4j)
# Global logging configurationlog4j.rootLogger=ERROR, stdout# MyBatis logging configuration...log4j.logger.org.mybatis.example.BlogMapper=TRACE# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
懒加载文件配置
orderDAO.xml
AddressDAO.xml
BookDAO.xml
缓存
/**
* 一级缓存 * 一级缓存不需要手动开启 * 在同一个Sqlsession对象中相同的语句只会执行一次, * 第二次的数据是从缓存中获取到的 * 除非中间执行了增删改操作,(会清空缓存) * 二级缓存 * 需要手动开启 * 实例对象需要实现Serializable接口 * 作用域在同一个mapper文件,可以跨Sqlsession对象 * 在第一次查询后SqlSession对象关闭时写入缓存 * 在修改数据后SqlSession对象关闭时清空缓存 * 所以当一个查询需要实时数据时不建议使用二级缓存 * -注意需要关闭Sqlsession对象否则不会生效 */java中的使用
/** * namespace 就是DAO的权限定名 * XXXmapper.xml文件 中 select insert update * id与DAO中的方法名一致 * parameterType 与DAO方法参数类型 一致 * resultXXXDAO方法返回类型一致;若返回类型是集合,则应和集合的泛型一致 *///获取SqlSessionFactory对象InputStream is = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);//获取SqlSession对象 sqlSessionFactory.openSession(blloean fl)指定提交的方式默认为false 需要手动提交SqlSession session = sqlSessionFactory.openSession(true);NavDAO navDAO = session.getMapper(NavDAO.class);Set
//获取SqlSessionFactory对象String resource = "mybatis-config.xml";InputStream is = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);//获取SqlSession对象 sqlSessionFactory.openSession(blloean fl)指定提交的方式默认为false 需要手动提交SqlSession sqlSession = sqlSessionFactory.openSession();//执行sql语句try { List