mybatis的学习和使用--日志配置(3)
关于 mybatis的日志配置,在官网上已经有详细的配置说明,http://www.mybatis.org/mybatis-3/zh/logging.html 在调试mybatis的代码有着很大的用处。
我的样例代码路径是: https://github.com/wangjiuong/MybatisDemo/tree/master/ExampleMyBatisLogConfig
运行com.wang.MyBatis.app的main函数,
1 public static void main(String[] args) { 2 insertUser(); 3 // deleteUser(); 4 selectUserById(); 5 6 selectUserById(); 7 // selectAllUser(); 8 }
1 /** 2 * 新增用户 3 */ 4 private static void insertUser() { 5 SqlSession session = DBTools.getSession(); 6 UserMapper mapper = session.getMapper(UserMapper.class); 7 UserBean user = new UserBean("懿", "1314520", 7000.0); 8 try { 9 mapper.insertUser(user); 10 System.out.println(user.toString()); 11 session.commit(); 12 } catch (Exception e) { 13 e.printStackTrace(); 14 session.rollback(); 15 } 16 }
selectUserById的函数如下:
1 /** 2 * 根据id查询用户 3 */ 4 private static void selectUserById() { 5 SqlSession session = DBTools.getSession(); 6 UserMapper mapper = session.getMapper(UserMapper.class); 7 try { 8 UserBean user = mapper.selectUserById(12); 9 mapper.selectUserById(12); 10 mapper.selectUserById(12); 11 if (null != user) { 12 System.out.println(user.toString()); 13 } 14 session.commit(); 15 } catch (Exception e) { 16 e.printStackTrace(); 17 session.rollback(); 18 } 19 }
日志输出如下:
1 2017-04-04 23:08:21,496 DEBUG [com.wang.MyBatis.model.UserMapper.insertUser] -==> Preparing: insert into t_user (username,password,account) values (?,?,?) 2 2017-04-04 23:08:21,558 DEBUG [com.wang.MyBatis.model.UserMapper.insertUser] -==> Parameters: 懿(String), 1314520(String), 7000.0(Double) 3 2017-04-04 23:08:21,568 DEBUG [com.wang.MyBatis.model.UserMapper.insertUser] -<== Updates: 1 4 UserBean [id=9196, username=懿, password=1314520, account=7000.0] 5 2017-04-04 23:08:21,585 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -==> Preparing: select * from t_user where id=? 6 org.apache.ibatis.logging.jdbc.PreparedStatementLogger@543788f3 7 2017-04-04 23:08:21,586 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -==> Parameters: 12(Integer) 8 2017-04-04 23:08:21,612 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -<== Total: 0 9 2017-04-04 23:08:21,622 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -==> Preparing: select * from t_user where id=? 10 org.apache.ibatis.logging.jdbc.PreparedStatementLogger@15b3e5b 11 2017-04-04 23:08:21,622 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -==> Parameters: 12(Integer) 12 2017-04-04 23:08:21,626 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -<== Total: 0
从日志输出可以看出,示例代码中没有开启二级缓存,mybatis的二级缓存的配置涉及到两项配置,1个是mapper.xml 配置,一个是setting中的配置,我们修改配置开启二级缓存配置:
UserMapper.xml配置修改如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 3 <mapper namespace="com.wang.MyBatis.model.UserMapper"> 4 <cache/> 5 ***************************
mybatis.cfg.xml中cacheEnabled修改为true,
1 <setting name="cacheEnabled" value="true" />
在运行测试代码,日志显示如下:
1 2017-04-04 23:35:10,221 DEBUG [com.wang.MyBatis.model.UserMapper.insertUser] -==> Preparing: insert into t_user (username,password,account) values (?,?,?) 2 2017-04-04 23:35:10,283 DEBUG [com.wang.MyBatis.model.UserMapper.insertUser] -==> Parameters: 懿(String), 1314520(String), 7000.0(Double) 3 2017-04-04 23:35:10,283 DEBUG [com.wang.MyBatis.model.UserMapper.insertUser] -<== Updates: 1 4 UserBean [id=9204, username=懿, password=1314520, account=7000.0] 5 2017-04-04 23:35:10,299 DEBUG [com.wang.MyBatis.model.UserMapper] -Cache Hit Ratio [com.wang.MyBatis.model.UserMapper]: 0.0 6 2017-04-04 23:35:10,314 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -==> Preparing: select * from t_user where id=? 7 org.apache.ibatis.logging.jdbc.PreparedStatementLogger@6d3af739 8 2017-04-04 23:35:10,314 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -==> Parameters: 12(Integer) 9 2017-04-04 23:35:10,345 DEBUG [com.wang.MyBatis.model.UserMapper.selectUserById] -<== Total: 0 10 2017-04-04 23:35:10,345 DEBUG [com.wang.MyBatis.model.UserMapper] -Cache Hit Ratio [com.wang.MyBatis.model.UserMapper]: 0.0 11 2017-04-04 23:35:10,345 DEBUG [com.wang.MyBatis.model.UserMapper] -Cache Hit Ratio [com.wang.MyBatis.model.UserMapper]: 0.0 12 2017-04-04 23:35:10,361 DEBUG [com.wang.MyBatis.model.UserMapper] -Cache Hit Ratio [com.wang.MyBatis.model.UserMapper]: 0.25 13 2017-04-04 23:35:10,361 DEBUG [com.wang.MyBatis.model.UserMapper] -Cache Hit Ratio [com.wang.MyBatis.model.UserMapper]: 0.4 14 2017-04-04 23:35:10,361 DEBUG [com.wang.MyBatis.model.UserMapper] -Cache Hit Ratio [com.wang.MyBatis.model.UserMapper]: 0.5 15
从日志看出,二级缓存生效,在同一个mapper.xml的不同session之间,缓存生效。

浙公网安备 33010602011771号