打印sql日志怎么在logback里配置

本文介绍了MyBatis作为流行的SQL映射框架,对比了org.apache.ibatis和org.mybatis日志打印的内容,强调了MyBatis的简化JDBC、对象映射和动态SQL等优势。并指出在iBatis基础上,MyBatis通过namespace实现了接口绑定的自然性,同时提及现代配置如mybatis-spring-boot-starter和durid如何简化配置和提供SQL监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyBatis 世界上流行最广泛的SQL 映射框架,由Clinton Begin 在2002 年创建,iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。其后,捐献给了Apache基金会,成立了iBatis 项目。2010 年5 月,将代码库迁致Google Code,并更名为MyBatis。(导包名:ibatis)
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs映射成数据库中的记录。(类似Hibernate)


问: org.apache.ibatis 和 org.mybatis 路径的日志都打印什么?

我们项目里是这么配的:

<!-- logback -->
<logger name="org.apache.ibatis"  additivity="false"  level="ERROR">
    <appender-ref ref="LOGGER-INFO" />
</logger>
<logger name="org.mybatis" additivity="false"  level="ERROR">
    <appender-ref ref="LOGGER-INFO" />
</logger>

对比一下:

org.apache.ibatis 在 mybatis 包
org.mybatis 在 mybatis-spring 包

  1. ibatis 是单独的持久层, mybatis在ibatis基础上升级了一下,是半自动化的持久层, hibernate 是全自动化的持久层.
  2. ibatis 封装了绝大多数的 JDBC 样板代码,使得开发者只需关注 SQL 本身,而不需要花费精力去处理例如注册驱动,创建 Connection,以及确保关闭 Connection 这样繁杂的代码.
  3. mybatis在很多地方都借助于 JDK 的泛型和注解特性进行了简化,反射很强大.
  4. mybatis有很多优点: 对象和数据库orm字段映射, sql和代码分离,写在xml里统一管理, 支持动态sql. 使用的时候只需要配置 SqlSessionTemplate,sqlSessionFactory,MapperScannerConfigurer, 然后写接口和映射文件就可以了.
  5. 在 iBatis 中,namespace 不是必需的,且它的存在没有实际的意义。在 MyBatis 中,namespace 终于派上用场了,它使得映射文件与接口绑定变得非常自然.
  6. ibatis麻烦一些,原生写法(现在都不用了,就连mybatis各种配置被mybatis-spring-boot-starter集成起来,写法更简便了,还有阿里的durid封装了数据库连接池、插件化扩展框架和SQL解析器,还支持页面监控sql执行情况,技术的迭代不断解放劳动力):
String resource = "mybatis-config.xml"; 
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 
SqlSession session = sqlSessionFactory.openSession();    
try {      
           Employee employee = new Employee(null, "name", "1", "123@qq.com"); 
           EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);     
           mapper.addEmp(employee);               
           session.commit();    
} finally {
      session.close();    
} 

所以

基本都是通过配置日志来实现的,比如配置我们最常用的 log4j.properties 或者 logback-spring.xml 来实现.

sql的日志由org.apache.ibatis 路径打印出来,
org.mybatisSql打印的是上层操作SessionTemplate等的日志.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值