浅谈mybatis

简介: 浅谈mybatis

说说mybaits原理


首先,之前Java连接数据库jdk有定义一套规范JDBC,但是这个规范使用起来太麻烦, 流程大概有加载驱动、连接数据库、执行sql、处理结果、释放资源。 特别是sql是以字符串的形式进行传参的,


所以在写sql时需要在代码里进行各种字符串的拼接,使用连接池也很不方便等等,严重影响开发的效率, 所以mybatis就是基于此诞生。


mybatis时对JDBC的增加,底层还是调用的JDBC接口,但是做一些方便开发者进行数据库操作的事情,


比如 通过mapper文件进行sql的编写,


一是进行sql和业务代码解耦,二是提供很多方便实用标签给开发者编写sql总比字符串拼接方便,三开发时通过接口的方式进行访问数据库,mybatis会自动通过动态代理生成接口的代理,接口被调用时执行相应的sql返回结果。 将数据库返回结果自动与Java对象进行映射,还支持如理驼峰命名这种命名习惯进行转换,省去了很多麻烦。 内置一个连接池的支持,不用开发者自己实现连接池。 通过一二级缓存机制提高访问性能



mybatis中#{}和${}区别?


使用#{}是进行预编译处理的,也就是话无论传什么值都直接加单引号作为参数的值传递,传入命令什么的都当作字符串处理,而${}是直接进行字符串拼接的,假设传入一些命令是会被执行的



mybatis中一二级缓存的工作机制?


首先这个缓存是未了减少进行数据库的查询次数进行缓存的,前提是当查询条件查询参数一样而且期间没有进行增删改时返回的结果时一样的


所以可以进行缓存,下次再查时直接取缓存的数据加快查询速度。


一级缓存时会话级别的,不同的sqlsession是不共享缓存的。


二级缓存是可以跨会话的,作用空间是namespace级别,不同的sqlsession操作同一个mapper是可以共享缓存的,但是一个mapper操作多个表的情况就会有误所以还是有局限的。


一级缓存默认开的,二级默认关闭,当查询是先去查二级缓存没有再查一级缓存。

相关文章
|
Docker 容器
使用阿里云 docker 镜像加速
1.创建docker daemon.json 2.添加docker镜像加速地址 3.重启守护进程
1769 1
|
算法
轨迹系列——一种基于中值滤波的轨迹纠偏方法和几点思考
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在无路网的情况下,如何进行轨迹纠偏也是一个很多人在研究的内容,各种方案均有很多,有基于不同滤波算法的,也有基于机器学习的,等等。
3105 0
|
10月前
|
数据采集 存储 算法
【C++数据结构——图】图的遍历(头歌教学实验平台习题) 【合集】
本文介绍了图的遍历算法,包括深度优先遍历(DFS)和广度优先遍历(BFS)。深度优先遍历通过递归方式从起始节点深入探索图,适用于寻找路径、拓扑排序等场景;广度优先遍历则按层次逐层访问节点,适合无权图最短路径和网络爬虫等应用。文中提供了C++代码示例,演示了如何实现这两种遍历方法,并附有测试用例及结果,帮助读者理解和实践图的遍历算法。
486 0
|
消息中间件 监控 API
深入浅出微服务架构设计原则
在软件开发的宇宙中,微服务如星辰般璀璨,引领着分布式系统的航向。本文将带你穿梭于微服务的星系,探索其背后的设计哲学与实践精髓,从服务边界的划分到数据一致性的保障,再到服务的通信与协作,我们将一同揭开微服务架构高效、可扩展且灵活的秘密。
250 4
|
NoSQL MongoDB Docker
windows下基于docker安装mongodb
windows下基于docker安装mongodb
337 1
|
JSON Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求
【5月更文挑战第31天】 在移动开发领域,尤其是针对Android平台,网络请求的管理和性能优化一直是开发者关注的焦点。随着Kotlin语言的普及,其提供的协程特性为异步编程提供了全新的解决方案。本文将深入探讨如何利用Kotlin协程来优化Android应用中的网络请求,从而提升应用的响应速度和用户体验。我们将通过具体实例分析协程与传统异步处理方式的差异,并展示如何在现有项目中集成协程进行网络请求优化。
|
程序员 开发工具 git
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
387 1
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络
Python中的Lambda函数应用及性能优化
Lambda函数是Python中一种简洁而强大的编程工具,本文将介绍Lambda函数的基本语法及在实际开发中的应用场景,同时探讨如何通过性能优化提升Lambda函数的执行效率。