MyBatis
文章平均质量分 71
无法无天过路客
Java程序员一枚,喜欢记录收集技术文章
展开
-
Mybatis中collection和association的区别
在MyBatis中,如果我们想对一对一或者一对多的多表进行查询,该如何处理呢?处理一对一、多对一处理一对多。原创 2024-05-14 07:59:15 · 173 阅读 · 0 评论 -
深入理解 Mybatis 插件开发
关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能;但对其内部实现机制,涉及的软件设计模式,编程思想往往没有深入的理解。本篇案例将帮助读者对Mybatis插件的使用场景,实现机制,以及其中涉及的编程思想进行一个小结,希望对以后的编程开发工作有所帮助。注:本案例以mybatis 3.4.7-SNAPSHOT版本为例。分页功能mybatis的分页默认是基于内存分页的(查转载 2020-06-28 14:36:41 · 129 阅读 · 0 评论 -
MyBatis几种通用的写法
用来循环容器的标签forEach,查看例子foreach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名,index:集合中元素迭代时的索引open:常用语where语句中,表示以什么开始,比如以’('开始separator:表示在每次进行迭代时的分隔符,close 常用语where语句中,表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但转载 2020-06-28 14:21:55 · 532 阅读 · 0 评论 -
Mybatis常见问题
**1、#{}和的区别是什么?∗∗答:{}的区别是什么?**答:的区别是什么?∗∗答:{}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#转载 2020-06-28 12:55:49 · 274 阅读 · 0 评论 -
MyBatis中的翻页
在我们的查询数据库的操作中,有两种分页方式,一种是逻辑翻页(假翻页), 一种是物理翻页(真分页)。逻辑分页的原理就是把所有数据都查询出来,在内存中筛选数据。物理分页是真正的分页,比如MySQL使用Limit语句,Oracle使用rownum语句,SQL Server使用top语句。逻辑翻页MyBatis中有一个逻辑翻页对象RowBounds,里面主要有两个属性,offset和limit(从第...原创 2019-05-01 00:14:32 · 910 阅读 · 0 评论 -
MyBatis源码分析
要分析MyBatis源码,我们还是从编程式用例入手,public void testSelect() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); ...原创 2019-05-03 18:20:33 · 170 阅读 · 0 评论 -
MyBatis缓存详解
缓存是一般ORM框架都会提供的功能, 目的就是提升查询的效率和减少数据库的压力。和Hibernate一样,MyBatis也提供一级缓存和二级缓存的功能,并预留了集成第三方缓存的接口。MyBatis跟缓存相关的类都在cache包里面,其中有一个Cache接口,且只有一个实现类PerpetualCache,它是用HashMap实现缓存功能的。除此之外,还有很多的装饰器,通过这些装饰器可以实现很多额...原创 2019-05-02 23:56:10 · 3246 阅读 · 1 评论