Mybatis常见问题

1.Mybatis工作原理
创建SqlSessionBuilder 读取mybatis配置文件的信息 ,SqlsessionBuilder创建SqlsessioniFactory,然后sqlsessionFactory就可以打开一个sqlSession了,
比如说selectOne(),会查询在configuration中配置的MappedStatement对象,mapper文件中的一个sql对应一个MappedStatement对象。然后会调用执行器进行查询操作,首先会查询缓存是否命中,命中就直接返回,否则就查询数据库。
在查询数据库的时候,还会调用ParameterHandler进行参数的处理,以及调用ResultHandler结果集进行处理。

2.Mybatis优点
简单易学,容易上手,基于SQL编程
JDBC相比,减少50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接
很好的与各种数据库兼容,所以只要JDBC支持的数据库Mybatis都支持
提供了很多的第三方插件
能够与Spring很好的集成

3.Mybatis缺点
SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此
SQl语句依赖于数据库,导致数据库移植性差,不能随意更换数据库

4.#{}和${} 区别

{}是预编译处理,${}是字符串替换

5.一对一、一对多的关联查询

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORM是什么?ORM指的是对象关系映射,可以从如下两个方面进行理解:1)将内存中的对象以及对象与对象之间的关系持久...
    ssttIsme阅读 425评论 0 0
  • MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情: 封装JDBC...
    慕容小伟阅读 1,080评论 0 2
  • 1 Mybatis入门 1.1 单独使用jdbc编程问题总结 1.1.1 jdbc程序 上边使...
    哇哈哈E阅读 3,338评论 0 38
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,700评论 0 4
  • Mybatis相关 1.Mybatis是什么? 2.为什么选择Mybatis? 3、#{}和${}的区别是什么? ...
    zhihaoZzz阅读 1,299评论 0 2