对于大数据技术开发者而言,Mybatis作为一个优秀的持久层框架,是需要具备的一项重要基础。涉及到数据存储、数据查询,Mybatis内部封装好JDBC,可以大大提升开发效率。今天的大数据学习分享,我们就来讲讲Mybatis基础入门。
Mybatis的前身是Apache的开源项目iBatis,在经过多次的迭代更新,才最终以Mybatis的名称定了下来。当前Mybatis最新版本是Mybatis 3.5.5,今年上半年6月发布。
Mybatis简介
Mybatis是一个基于Java的持久层框架,内部封装了JDBC,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过Java对象和statement中SQL的动态参数进行映射生成最终执行的SQL语句,最后由Mybatis框架执行SQL并将结果映射为Java对象并返回。
采用ORM思想解决了实体和数据库映射的问题,对JDBC进行了封装,屏蔽了JDBC api底层访问细节,使我们不用与JDBC api打交道,就可以完成对数据库的持久化操作。
Mybatis优缺点
优点:
简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个SQL映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
灵活:Mybatis不会对应用程序或者数据库的现有设计强加任何影响。SQL写在xml里,便于统一管理和优化。通过SQL基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
解除SQL与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。SQL和代码的分离,提高了可维护性。
提供映射标签,支持对象与数据库的orm字段关系映射。
提供对象关系映射标签,支持对象关系组建维护。
提供xml标签,支持编写动态SQL。
缺点:
编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。
框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。
二级缓存机制不佳。
Mybatis核心API
Mybatis中核心配置文件有两种:Mybatis核心配置文件和Mybatis映射文件。
Mybatis核心API:
SQLSessionFactoryBuilder:SQLSessionFactoryBuilder对象的生命周期是局部方法内,即用之即丢。
SQLSessionFactoryBuilder用于创建SQLSessionFacoty,SQLSessionFacoty一旦创建完成就不需要SQLSessionFactoryBuilder了。因为SQLSession是通过SQLSessionFactory创建的,所以可以将SQLSessionFactoryBuilder当成一个工具类使用,最佳使用范围是方法范围即方法体内局部变量。
SQLSessionFactory:SQLSessionFactory是单例的,在整个工程内生效。
创建SQLSession的工厂,是一个接口,接口中定义了openSession的不同重载方法。SQLSessionFactory的最佳使用范围是整个应用运行期间,一旦创建后可以重复使用,通常以单例模式管理SQLSessionFactory。
SQLSession:生命周期一次数据库访问请求过程。
连接到数据库的一个会话。SQLSession中定义了数据库操作方法。每个线程都应该有它自己的SQLSession实例。SQLSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围。
SQLSession在执行SQL语句时有两种方式:
通过具体方法的完整路径来执行;
通过mapper接口来执行(建议使用)。
关于大数据学习,Mybatis基础入门,以上就为大家做了简单的介绍了。对于大数据开发者而言,掌握好Mybatis,对于底层基础架构搭建,还是很有应用意义和参考价值的。
领取专属 10元无门槛券
私享最新 技术干货