首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大数据学习:Mybatis基础入门

对于大数据技术开发者而言,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,对于底层基础架构搭建,还是很有应用意义和参考价值的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201218A0CSEK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券