Mybatis

简介: Mybatis

来源


MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。


iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(sDAO)


介绍


MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。


与Hibernate对比


两者相同点


Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。


Hibernate和MyBatis都支持JDBC和JTA事务处理。


Mybatis优势


MyBatis可以进行更为细致的SQL优化,可以减少查询字段。


MyBatis容易掌握,而Hibernate门槛较高。


Hibernate优势


Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。


Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。


Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。


Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。


相关文章
|
JSON 数据格式
Nestjs(三)接收参数 @Query @Body @Param(post、get 、put、delete ...)
Nestjs(三)接收参数 @Query @Body @Param(post、get 、put、delete ...)
901 4
|
机器学习/深度学习 人工智能 自然语言处理
|
9月前
|
并行计算 PyTorch 算法框架/工具
本地部署DeepSeek模型
要在本地部署DeepSeek模型,需准备Linux(推荐Ubuntu 20.04+)或兼容的Windows/macOS环境,配备NVIDIA GPU(建议RTX 3060+)。安装Python 3.8+、PyTorch/TensorFlow等依赖,并通过官方渠道下载模型文件。配置模型后,编写推理脚本进行测试,可选使用FastAPI服务化部署或Docker容器化。注意资源监控和许可协议。
4999 13
|
机器学习/深度学习 算法 Python
【Python机器学习专栏】数据特征选择与降维技术
【4月更文挑战第30天】本文探讨了Python中数据特征选择与降维技术在机器学习和数据分析中的应用。特征选择包括单变量选择、递归特征消除(RFE)、树模型的特征重要性和相关性分析,有助于去除冗余和无关特征。降维技术涵盖PCA、LDA以及非线性方法如KPCA和ISOMAP,用于在低维空间保留信息。这些技术能简化数据、提升模型性能及可解释性。
340 0
|
测试技术
官方demo:我和灵码搭子的这一年
我是一名后端开发工程师,作为通义灵码的早期用户,见证了其功能日益强大,尤其在增加跨文件补全功能后,代码生成效果显著提升。在有网络的情况下,我的编码效率大幅提升,只需输入少量字符,灵码即可自动完成剩余部分。本文将通过多个场景展示通义灵码在代码补全方面的优势,并分享其在企业环境中的应用效果。此外,还提供了CSDN渠道链接以供进一步了解。
236 4
|
编解码 vr&ar 数据安全/隐私保护
正则表达式
正则表达式
126 0
|
JavaScript 前端开发 编译器
js开发: 请解释什么是Babel,以及它在项目中的作用。
**Babel是JavaScript编译器,将ES6+代码转为向后兼容版本,确保在旧环境运行。它在前端构建中不可或缺,提供语法转换、插件机制、灵活配置及丰富的生态系统,支持代码兼容性和自定义编译任务。**
180 6
|
运维 安全 关系型数据库
Linux运维常见故障及处理的 32 个锦囊妙计
Linux 运维 常见故障及处理的
630 0
|
算法 测试技术 C++
【动态规划】 【字典树】C++算法:472 连接词
【动态规划】 【字典树】C++算法:472 连接词