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.一对一、一对多的关联查询