草庐IT

2.MyBatis

全部标签

MyBatis面试题(二)

文章目录前言一、MyBatis与Hibernate有哪些不同?二、MyBatis的好处是什么?三、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?四、什么是MyBatis的接口绑定,有什么好处?五、接口绑定有几种实现方式,分别是怎么实现的?六、什么情况下用注解绑定,什么情况下用xml绑定?七、MyBatis实现一对一有几种方式?具体怎么操作的?八、Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?九、MyBatis里面的动态Sql是怎么设定的?用什么语法?十、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映

MyBatis Plus 插件 动态数据源实现原理与源码讲解 (dynamic-datasource-spring-boot-starter-master)

目录1.介绍2.基本原理3.源码介绍3.1使用AOP拦截,方法执行前获取到当前方法要用的数据源3.2实现自定义 DataSource接口,实现DataSource接口的getConnect方法做动态处理1.介绍多数据源即一个项目中同时存在多个不同的数据库连接池。比如127.0.0.1:3306/test  127.0.0.1:3307/test 127.0.0.1:3308/test总之项目存在需要操作多个库的需求。具体在编码方面呢,具体就是一个service中,方法1使用库1查询,方法2使用库2查询。2.基本原理多数据源实现原理是什么呢?可分为两大关键部分1.使用AOP拦截,方法执行前获取到

Mybatis占位符#和$的区别?源码解读

本文针对笔者日常开发中对 Mybatis 占位符 #{} 和 ${} 使用时机结合源码,思考总结而来• Mybatis 版本3.5.11• Springboot 版本3.0.2• mybatis-spring 版本3.0.1•github地址:https://github.com/wayn111,欢迎大家关注,点个star一.启动时,mybatis-spring解析xml文件流程图Spring项目启动时,mybatis-spring自动初始化解析xml文件核心流程。流程图Mybatis在buildSqlSessionFactory()会遍历所有mapperLocations(xml文件)调用x

SpringBoot热部署和整合Mybatis

目录一、SpringBoot热部署1.1 添加DevTools依赖1.2 在idea中设置自动编译1.3 在Idea设置自动运行二、SpringBoot整合Mybatis2.1准备数据2.2添加相关依赖2.3在配置文件进行数据源配置2.4编写Mapper接口和Mapper文件2.5测试一、SpringBoot热部署热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。即修改完代码后不需要重启项目即可生效。在SpringBoot中,可以使用DevTools工具实现热部署1.1 添加DevTools依赖首先我们需要在pom文件中引入devtools的依赖,如下:   org.spring

Mybatis-Plus CRUD

💗wei_shuo的个人主页💫wei_shuo的学习社区🌐HelloWorld!Mybatis-PlusCRUD通用ServiceCRUD封装IService接口,进一步封装CRUD采用get查询、remove删除、list查询集合、page分页的前缀命名方式区分Mapper层避免混淆泛型T为任意实体对象如果自定义通用Service方法,可以创建自己的IBaseService继承Mybatis-Plus提供的基类IService对象Wrapper为条件构造器ServiceCRUD接口Save类型参数名描述Tentity实体对象CollectionentityList实体对象集合intbatch

MyBatis的分页原理

写作目的最近看到了一篇MyBatis的分页实现原理,文章里描述到使用ThreadLocal,其实想主要想看看ThreadLocal的巧妙使用,并且看一下分页是如何实现的。源码下载ChaiRongD/Demooo-Gitee.com源码跟踪其实一个简单的分页如下面代码所示,使用PageHelp对象设置分页的参数,然后把查询到的List对象作为参数传入PageInfo对象中,就拿到了分页对象的结果。@GetMapping("/page")publicObjectpage(){//查询第三页,每页三条PageHelper.startPage(3,3);Listtemperatures=tempera

探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty

文章目录Spring框架SpringMVC框架SpringBoot框架MyBatis框架Netty框架总结🎉欢迎来到Java面试技巧专栏~探索Java中最常用的框架:Spring、SpringMVC、SpringBoot、MyBatis和Netty☆*o(≧▽≦)o*☆嗨~我是IT·陈寒🍹✨博客主页:IT·陈寒的博客🎈该系列文章专栏:Java面试技巧📜其他专栏:Java学习路线Java面试技巧Java实战项目AIGC人工智能数据结构学习🍹文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏📜欢迎大家关注!❤️在现代的软件开发中,框架是不可或缺的工具,它们能够极大地提高开发效率、代码质量以

java - 当 id/uuid 存储为二进制时,如何使用 MyBatis 在插入后返回 key ?

我们目前在我们的数据库中有触发器,它为我插入的每条记录分发uuid。当我用mybatis插入记录时,我想取回该uuid而不是已插入的行数。从上一篇文章我读到我可以用useGeneratedKeys="true"keyProperty="id"但是我们将uuid存储为二进制文件,所以我想从插入中取回非二进制uuid。当我们插入东西时,我们使用像“uuid2bin”和“bin2uuid”这样的函数,所以我希望使用这样的函数从数据库(MySQL)中检索新生成的uuid。关于如何取回新生成的uuid有什么建议吗?? 最佳答案 我能想到的两个

自定义MyBatis拦截器更改表名

byemanjusakafrom​https://www.emanjusaka.top/archives/10彼岸花开可奈何本文欢迎分享与聚合,全文转载请留下原文地址。自定义MyBatis拦截器可以在方法执行前后插入自己的逻辑,这非常有利于扩展和定制MyBatis的功能。本篇文章实现自定义一个拦截器去改变要插入或者查询的数据源。@Intercepts@Intercepts是Mybatis的一个注解,它的主要作用是标识一个类为拦截器。该注解通过一个@Signature注解(即拦截点),来指定拦截那个对象里面的某个方法。具体来说,@Signature注解的属性type用于指定拦截器类型,可能的值包

SpringBoot项目中使用mybatis逆向工程

mybatis逆向工程,即利用现有的数据表结构,生成对应的model实体类、dao层接口,以及对应的mapper.xml映射文件。借助mybatis逆向工程,我们无需手动去创建这些文件。下面是使用Java代码的方式来实现逆向工程,生成文件(也可以使用插件来生成):首先,导入需要的依赖包:mybatis逆向工程的依赖和数据库的依赖mybatis逆向工程-->dependency>groupId>org.mybatis.generatorgroupId>artifactId>mybatis-generator-coreartifactId>version>1.3.5version>dependen