
人在江湖之Mybatis
文章平均质量分 85
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。目前国内使用得最多的ORM框架。
没事儿写两篇
授之以鱼不如授之以渔
展开
-
Mybatis plus 一对多关联查询分页不准确的问题
其实造成这个问题的关键在于,sql查询返回的条数,和Mybatis最终组装后的结果bean的条数不一致。要一致的关键在于,我们的查询主体是Server,我们将sql改造为如下方式直接将分页参数编写好,查询第一页的10条server信息。注:采用此方式,我们就不能使用Mybatis的分页机制了,参数不能使用Mybatis-plus的Page对象,需要自定义分页信息,采用list返回,而且还得自定义 count 的查询语句。配套的 count查询语句如下。原创 2022-11-11 14:35:31 · 2034 阅读 · 2 评论 -
Mybatis反向工程
前言Mybatis也有反向工程,用于通过数据库表生成对应的Mapper接口和mapper.xml文件,与Mybatis-plus的代码生成器不同的是,其主要生成的代码在mapper.xml文件中,包含了表的动态增删改查操作。如果不用Mybatis-plus的话用Mybatis反向工程可以生成更为标准的mapper文件。导入依赖 <dependency> <groupId>org.mybatis.generator</groupId&g原创 2022-02-08 11:01:37 · 1250 阅读 · 0 评论 -
Mybatis-plus进阶之代码生成器
前言Mybatis也有对应的反向工程mybatis-generator来生成相关的Mapper接口和xml配置。Mybatis-plus的代码生成更为简单。导入pom依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version&原创 2022-02-07 17:32:00 · 1123 阅读 · 0 评论 -
Mybatis-plus进阶之分布式id生成
修改MyEmppackage com.yyoo.boot.mp.beans;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;@Data@TableName("t_my_emp")public c原创 2022-02-05 16:44:15 · 4122 阅读 · 2 评论 -
Mybatis-plus进阶之分页
前言我们在讲Mybatis的时候也没有提到分页,Mybatis的原生分页是将数据查询到内存,再在内存中进行的分页,不用多说,这在我们的实际应用中肯定是不被允许的。在Mybatis-plus出现之前,有一个Mybatis插件叫做PageHelper。PageHelper现在估计也有很多项目在使用,但其使用起来相对我们的Mybatis-plus的分页插件要麻烦一些。MP的分页示例基础的代码,请查看前文。示例代码 @Test public void t2(){ Page pag原创 2022-02-05 15:32:47 · 1027 阅读 · 0 评论 -
SpringBoot整合Mybatis-plus
添加依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version></dependency>原创 2022-02-05 13:48:34 · 806 阅读 · 0 评论 -
Spring Boot整合Mybatis
添加maven依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.1</version> </dependency>原创 2022-01-29 17:07:41 · 3996 阅读 · 0 评论 -
Mybatis 批量插入
insert, update 和 delete前文我们说到了select标签,以及一些复杂查询的处理。本文我们主要讨论一下Mybatis的批量插入操作。在这之前,我们还是得先了解insert, update 和 delete标签。<insert id="insertAuthor" parameterType="domain.blog.Author" flushCache="true" statementType="PREPARED" keyProperty="" keyCo原创 2022-01-27 18:04:45 · 10938 阅读 · 6 评论 -
Mybatis resultMap复杂查询结果映射
结果映射resultMap<!-- 官网示例,大多数情况下我们的resultMap没有这么复杂 --><resultMap id="detailedBlogResultMap" type="Blog"> <constructor> <idArg column="blog_id" javaType="int"/> </constructor> <result property="title" column="blog_t原创 2022-01-05 21:49:49 · 826 阅读 · 0 评论 -
Mybatis select查询
传递参数如Mybatis 入门示例,我们直接传递简单参数,可以在xml中直接使用。多个参数也可以同样传递。如果要传递复杂参数,我们需要适应select标签的parameterType属性。传递JavaBean对象参数 <select id="selectEmp" parameterType="com.yyoo.mybatis.beans.Emp" resultType="com.yyoo.mybatis.beans.Emp"> select * from emp wh原创 2022-01-04 16:05:04 · 1237 阅读 · 0 评论 -
Mybatis XML映射文件
XML映射文件如上一篇,我们的xml映射文件和Mapper接口是对应的。当然Mybatis也支持使用注解方式将sql绑定到Mapper接口上(这个我们后面再说)。但xml映射方式来绑定sql和Mapper功能更为强大,也更方便的编写动态的sql。XML映射文件的顶级元素SQL 映射文件只有很少的几个顶级元素,按先后顺序如下cache – 该命名空间的缓存配置。cache-ref – 引用其它命名空间的缓存配置。resultMap – 描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素。原创 2021-12-27 21:58:31 · 719 阅读 · 0 评论 -
Mybatis 入门示例
准备环境mysql 数据库本文使用Oracle的Scott账号的数据。一下链接是我转换为mysql语法的初始化sql语句,直接执行即可。SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for bonus-- ----------------------------DROP TABLE IF EXISTS `bonus`;CREATE TABLE原创 2021-12-14 16:35:22 · 1405 阅读 · 0 评论