Spring之路(33)–MyBatis基本介绍与应用场景

简介: 本文目录1. 常用的访问数据库的方式2. MyBatis 应用场景3. MyBatis 基本工作流程

1. 常用的访问数据库的方式

说实话,我就只用过4种:


第1种,自己编写JDBC访问数据库,或者简单的封装下JDBC访问数据库,毫无疑问这种大家应该都写过,但是质量堪忧。因为绝大多数程序员还达不到封装国际知名类库的能力,而后面的方式都是国际知名的。


第2种,使用SpringJDBC,基本还是按JDBC的方式访问数据库,不过将重复代码封装起来了,更加简洁优雅。


第3种,Hibernate,比较全面彻底的ORM封装,想当年我学Java Web开发的时候,最流行的就是SSH(Spring+Struts+Hibernate)。目前应用也很多,在国内国企、传统软件公司用的很多。


第4种,MyBatis,前身是iBatis。相比于Hibernate,ORM封装并没有那么彻底,也就是说还需要写不少sql语句。但是恰恰这顺应了互联网发展的浪潮。互联网公司的项目,往往都面临流量大数据库压力大的困难,而MyBatis可以自由的编写sql语句便于定制、优化sql。所以目前互联网公司采用MyBatis的更多,目前形成了非常流行的SSM(Spring+SpringMVC+MyBatis)。


但是没有最好,只有最合适。非常小的项目可以直接JDBC+Servlet;如果是使用了Spring的话,可以直接用SpringJDBC比原生JDBC更快更方便;如果是比较大一点的项目还是推荐使用Hibernate或者MyBatis,当然我个人是更加推荐MyBatis的,写起来更加爽快,Hibernate我感觉太繁琐了,然后我日常工作也经常需要优化一些sql,从这一点上使用MyBatis也更方便点。


2. MyBatis 应用场景

其实上面已经分析了,可以说只要正儿八经的项目,需要访问数据库的(还有不需要的吗?),都建议使用MyBatis。


3. MyBatis 基本工作流程

执行java方法准备操作数据库

该方法对应元数据中配置的sql语句,此时转而执行sql

执行完成后,根据元数据配置将结果转换为java数据结构。此处描述对象-关系映射的元数据指的是注解或xml

主要工作流程就是这样。

相关文章
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
123 62
|
5天前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
141 0
|
27天前
|
XML Java 数据格式
Spring Core核心类库的功能与应用实践分析
【12月更文挑战第1天】大家好,今天我们来聊聊Spring Core这个强大的核心类库。Spring Core作为Spring框架的基础,提供了控制反转(IOC)和依赖注入(DI)等核心功能,以及企业级功能,如JNDI和定时任务等。通过本文,我们将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring Core,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
53 14
|
1月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
221 12
基于开源框架Spring AI Alibaba快速构建Java应用
|
28天前
|
Java 关系型数据库 数据库
京东面试:聊聊Spring事务?Spring事务的10种失效场景?加入型传播和嵌套型传播有什么区别?
45岁老架构师尼恩分享了Spring事务的核心知识点,包括事务的两种管理方式(编程式和声明式)、@Transactional注解的五大属性(transactionManager、propagation、isolation、timeout、readOnly、rollbackFor)、事务的七种传播行为、事务隔离级别及其与数据库隔离级别的关系,以及Spring事务的10种失效场景。尼恩还强调了面试中如何给出高质量答案,推荐阅读《尼恩Java面试宝典PDF》以提升面试表现。更多技术资料可在公众号【技术自由圈】获取。
|
25天前
|
XML 前端开发 安全
Spring MVC:深入理解与应用实践
Spring MVC是Spring框架提供的一个用于构建Web应用程序的Model-View-Controller(MVC)实现。它通过分离业务逻辑、数据、显示来组织代码,使得Web应用程序的开发变得更加简洁和高效。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring MVC,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
58 2
|
28天前
|
缓存 Java 数据库连接
深入探讨:Spring与MyBatis中的连接池与缓存机制
Spring 与 MyBatis 提供了强大的连接池和缓存机制,通过合理配置和使用这些机制,可以显著提升应用的性能和可扩展性。连接池通过复用数据库连接减少了连接创建和销毁的开销,而 MyBatis 的一级缓存和二级缓存则通过缓存查询结果减少了数据库访问次数。在实际应用中,结合具体的业务需求和系统架构,优化连接池和缓存的配置,是提升系统性能的重要手段。
45 4
|
28天前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
45 3
|
1月前
|
JSON 安全 算法
Spring Boot 应用如何实现 JWT 认证?
Spring Boot 应用如何实现 JWT 认证?
74 8
|
1月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
44 1