MyBatis(上)

news/2024/11/24 7:34:49/

1、概述:

        MyBatis(以前称为iBATIS)是一个Java持久性框架,用于简化数据库访问和与关系数据库的交互。它提供了一种将数据库操作与Java应用程序的业务逻辑分离的方式,使开发人员能够更轻松地编写数据库访问代码。MyBatis本质上就是对JDBC的封装,通过MyBatis完成CRUD。

        MyBatis作为持久层的一个框架,使用到的一个思想就是ORM,用于将对象模型(通常是面向对象编程语言中的类和对象)映射到关系数据库中的数据模型(表、列等)。ORM框架允许开发人员以面向对象的方式进行数据库操作,而不必直接编写SQL查询。通过这个可以使Java中的对象转化为数据库表的一个记录,这种转化的关系就叫做映射。

        之前也注意到啦,什么domain、bean、pojo,只不过一开始没注意其中的含义,大概意思就是,pojo是普通的java类,bean(Spring框架的时候使用的比较多),domain(领域模型------封装数据的),不同的开发的团队可能叫法不一样。

        MyBatis是一个半自动化的ORM框架,就是需要我们手动去书写SQL语句,Hibernate是一个全自动的ORM框架。

  1. SQL映射:MyBatis通过XML或注解方式定义SQL查询,将Java对象与数据库表之间的映射关系。这使得开发人员可以在SQL中编写原生SQL查询,而不需要使用对象关系映射(ORM)框架。

  2. 简化数据访问:MyBatis处理了许多数据库访问的底层细节,如连接管理、事务处理和结果集映射,从而使开发人员能够专注于业务逻辑而不必关心这些细节。

  3. 动态SQL:MyBatis允许在SQL查询中使用动态SQL,根据条件动态生成SQL查询,这在构建复杂查询时非常有用。

  4. 参数映射:MyBatis支持将Java对象作为参数传递给SQL查询,参数映射工作非常灵活,可以轻松地传递单个参数、多个参数、参数对象等。

  5. 结果集映射:MyBatis支持将SQL查询的结果集映射到Java对象,开发人员可以使用XML或注解来定义映射规则。

  6. 事务管理:MyBatis支持事务管理,可以通过编程方式管理事务,也可以配置自动提交或手动提交事务。

  7. 插件支持:MyBatis提供了插件机制,允许开发人员编写自定义插件来扩展其功能,例如添加日志、性能监控等。

  8. 集成性:MyBatis可以与Spring、Spring Boot等常见的Java框架和应用服务器集成,使其更容易在现有项目中使用。

  9. 易于学习和使用:MyBatis的学习曲线相对较低,它的配置和使用都相对简单明了。

        总之,MyBatis是一个轻量级的Java持久性框架,适用于需要直接访问数据库的应用程序。它提供了丰富的功能,包括SQL映射、参数映射、结果集映射等,使得数据库访问变得更加简单和灵活。


http://www.ppmy.cn/news/1145485.html

相关文章

(js)封装年月日获取方法,页面根据type判断显示当前年,年月,日期

(js)封装年月日获取方法,页面根据type判断显示当前年,年月,日期 项目src——>utils——>index.js // 获取当前年,年月,日期,type, export function getYearMonth(type) {var date new Date()var ye…

Spring Cloud--@RefreshScope动态刷新的注意事项

原文网址:Spring Cloud--RefreshScope动态刷新的注意事项_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Spring Cloud的RefreshScope动态刷新的注意事项。 不用RefreshScope也能动态刷新 Spring Cloud的默认实现了动态刷新,不加RefreshScope就能实现动态…

四维曲面如何画?matlab

clc; clear all [theta,phi]meshgrid(linspace(0,pi,50),linspace(0,2*pi,50)); zcos(theta); xsin(theta).*cos(phi); ysin(theta).*sin(phi); f-1*((x.*y).2(y.*z).2(z.*x).^2); surf(sin(theta).*cos(phi).*f,sin(theta).*sin(phi).*f,cos(theta).*f,f) 结果

开啥玩笑?一个SSD硬盘可以使用100多年?MTBF正解

在之前文章中,有一个参数“平均无故障时间”,对应的参数是MTBF,比如这个盘MTBF150万小时。 小编发现有一些朋友对这个参数还有误解。大家看到这个参数误认为盘可以使用150万小时都没有发生故障。如果真的是这样,那么这盘的质量简直…

软考 系统架构设计师系列知识点之软件质量属性(2)

接前一篇文章:软考 系统架构设计师系列知识点之软件质量属性(1) 这个十一注定是一个不能放松、保持“紧”的十一。由于报名了全国计算机技术与软件专业技术资格(水平)考试,11月4号就要考试,因此…

iceberg简介004_iceberg和其他数据湖框架的对比---​​数据湖Apache Iceberg工作笔记0004

然后来看一下iceberg和其他数据湖框架的对比这里可以看到hudi支持的多一点对吧,但是 iceberg有自己的优势,并且他们都支持timeline 也就是时间旅行对吧. 然后这个图是显示了,数据湖三剑客的开源时间,以及火热程度,可以对比一下看看.

Feign的面试

一、feign的原理 EnableFeignClients会引入一个FeignClientsRegistrar,他主要就是扫描FeignClient注解的类,然后放到beanDefinition中。 他会生成一个JDK代理,利用的核心invocation就是 HystrixInvocationHandler,他会调用 LoadBalancerFe…

【每日一记】OSPF区域划分详讲、划分区域的优点好处

个人名片: 🐼作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&#x1f5bc…