mybatis描述核心配置文件 basemapper实现原理?
basemapper实现原理?
bas
mybatis流式查询优缺点?
优势
1.简单易学
Mybatis本身很小很简单。没有任何第三方依赖,最简单的安装只需要两个jar文件和几个SQL映射文件,易学易用。通过文档和源代码,我们可以充分掌握其设计思想和实现。
2.灵活性
Mybatis不会对应用程序或数据库的现有设计产生任何影响。SQL用XML编写,便于统一管理和优化。通过SQL,我们基本上可以实现所有不用数据访问框架就能实现的功能,也许更多。
3.从程序代码中分离SQL
通过提供DAL层,将业务逻辑和数据访问逻辑分离,使得系统设计更加清晰,更易于维护,更易于单元测试。SQL和代码的分离提高了可维护性。
4.提供映射标签,支持对象和数据库之间ORM字段关系的映射。
5.提供对象关系映射标签来支持对象关系的建立和维护。
6.提供XML标签,支持动态SQL的编写。
劣势
1.写SQL语句的时候工作量很大,尤其是有很多字段和关联表的时候。
2.SQL语句依赖于数据库,导致数据库的可移植性差,所以数据库无法被替换。
3.框架还是比较简单,功能还是缺失的。虽然简化了数据绑定代码,但是整个底层数据库查询实际上都是自己写的,工作量比较大,不容易适应快速的数据库修改。
4.二级缓存机制不好。
mybatis工作原理及流程?
1)读取mybatis配置文件:mybatis-config.xml是MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,比如数据库连接信息。
2)加载映射文件。映射文件是SQL映射文件,其中配置了操作数据库的SQL语句,需要加载到MyBatis配置文件mybatis-config.xml中mybatis-config.xml文件可以加载多个映射文件,每个文件对应数据库中的一个表。
3)构建会话工厂:通过MyBatis 等配置信息构建会话工厂SqlSessionFactory。;环境。
4)创建会话对象:通过会话工厂创建SqlSession对象,该对象包含执行SQL语句的所有方法。
5)Executor executor: MyBatis定义了一个Executor接口来操作数据库,它会根据SqlSession传递的参数动态生成要执行的SQL语句,同时还负责维护查询缓存。
6)MappedStatement对象:在Executor接口的执行方法中有一个MappedStatement类型的参数,封装了映射信息,用于存储要映射的SQL语句的id、参数等信息。
7)输入参数映射:输入参数类型可以是map、List等集合类型,也可以是基本数据类型和POJO类型。输入参数映射过程类似于JDBC ;为preparedStatement对象设置参数的过程。
8)输出结果映射:输出结果类型可以是map、List等集合类型,也可以是基本数据类型和POJO类型。输出结果的映射过程类似于JDBC ;结果集的解析过程。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。