SpringBoot集成MyBatis-Plus自定义SQL
1.说明
本文介绍Spring Boot集成MyBatis-Plus框架后,
基于已经创建好的Spring Boot工程,
添加自定义的SQL实现复杂查询等操作。
自定义SQL主要有两种方式,
一种是Annotation注解方式,
另一种是XML配置文件方式。
2.Annotation注解方式
直接先定义接口方法,
然后在接口方法上面开发注解即可。
下面的示例实现了通过@Select注解,
在注解中开发自定义SQL语句,
实现了通过ID查询用户的方法:
package com.example.demo.dao;import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;public interface UserDao extends BaseMapper<User> {@Select("SELECT * FROM TBL_USER WHERE id=#{id};")public User getUserById(Long id);
}
3.XML配置文件方式
首先在Spring Boot中指定需要加载的XML文件,
然后新建对应接口类的XML文件,
开发对应接口方法的自定义SQL语句。
现有通过ID查询用户的自定义接口如下:
package com.example.demo.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;public interface UserDao extends BaseMapper<User> {public User getUserById(Long id);
}
首先修改application.yml文件:
mybatis-plus:# 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml# 如果是放在resource目录 classpath:/mapper/**.xmlmapper-locations: classpath:/mapper/**.xml
然后在src\main\resources目录下,
创建目录mapper,
在mapper下创建文件UserDao.xml,
在XML文件中开发自定义SQL语句:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.UserDao"><select id="getUserById" parameterType="Long" resultType="com.example.demo.entity.User">SELECT * FROM TBL_USER WHERE id = #{id}</select>
</mapper>
4.两种方式共存
Annotation注解和XML配置文件这两种方式,
可以同时使用,代码可以正常执行,
不会冲突,也不会报错。
但是如果自定义了一个接口方法,
没有对应到任何实现的SQL语句,
就会报没有找到SQL绑定的错误异常:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.dao.UserDao.getUserByIdAnnotationat org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235)at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:50)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedMapperMethod$0(MybatisMapperProxy.java:101)at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedMapperMethod(MybatisMapperProxy.java:100)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:95)at com.sun.proxy.$Proxy79.getUserByIdAnnotation(Unknown Source)at com.example.demo.SampleTest.testSelectByAnnotations(SampleTest.java:31)
5.参考文章
MyBatis-Plus 自定义sql语句
http://www.taodudu.cc/news/show-1251006.html
相关文章:
- SpringBoot集成MyBatis-Plus代码生成器
- SpringCloud创建项目父工程
- SpringCloud创建Eureka模块
- SpringBoot集成MyBatis-Plus代码生成器(Dao)
- SpringCloud创建Gateway模块
- Eclipse控制台Console使用说明
- POI导入导出Excel(HSSF格式,User Model方式)
- 正则表达式常用汇总
- 接口文档编写技巧
- MySQL客户端mysql常用命令
- HAproxy开启日志记录
- SpringCloud创建Config模块
- SpringCloud创建Eureka Client服务注册
- SpringCloud创建Config Client配置读取
- SpringCloud创建Config Client通过Eureka访问Config
- SpringCloud集成Security安全(Config配置中心)
- SpringCloud集成Security安全(Eureka注册中心)
- SpringCloud创建Config多客户端公共配置
- SpringCloud创建Config读取本地配置
- SpringCloud使用汇总Config
- SpringCloud创建Eureka模块集群
- Eclipse启动SpringCloud微服务集群的方法
- SpringCloud发现服务代码(EurekaClient,DiscoveryClient)
- SpringBoot集成Actuator监控管理
- SpringBoot集成Actuator端点配置
- SpringBoot集成Actuator健康指示器health
- gRPC创建Java RPC服务
- ProtoBuf3语法指南(Protocol Buffers)_上
- ProtoBuf3语法指南(Protocol Buffers)_下
- gPRC基本介绍
SpringBoot集成MyBatis-Plus自定义SQL相关推荐
- Java 捕获 mybatis异常_3 springboot集成mybatis和全局异常捕获
mybatis有两种方式,一种是基于XML,一种是基于注解 springboot集成mybatis 首先先创建表,这里都简化了 DROP TABLE IF EXISTS `user`; CREATE ...
- Springboot 集成 mybatis 开启二级缓存(redis)
首先来了解下mybatis 缓存,mybatis缓存分为一级缓存和二级缓存.一级缓存是默认开启的,无需其他配置操作,二级缓存则需要手动设置开启. 一级缓存原理: Mybatis的一级缓存是指同一个Sq ...
- SpringBoot——SpringBoot集成MyBatis
目录 1 SpringBoot集成MyBatis 1.1 准备工作 1.2 pom.xml文件 1.3 核心配置文件(application.properties) 1.4 GeneratorMapp ...
- SpringBoot集成Mybatis项目实操
本文为<从零打造项目>系列第三篇文章,首发于个人网站. <从零打造项目>系列文章 比MyBatis Generator更强大的代码生成器 SpringBoot项目基础设施搭建 ...
- SpringBoot集成Mybatis Plus
Mybatis Plus是Mybatis的升级版本,提供一些默认的功能实现,只要按照其约定编写代码,就可以充分利用其特性. SpringBoot集成Mybatis Plus步骤: 每个实体类定义一套M ...
- BindingException: Invalid bound statement (not found)问题排查:SpringBoot集成Mybatis重点分析...
重构代码,方法抛出异常:BindingException: Invalid bound statement (not found) 提示信息很明显:mybatis没有提供某方法 先不解释问题原因和排查 ...
- Springboot集成mybatis通用Mapper与分页插件PageHelper
Springboot集成mybatis通用Mapper与分页插件PageHelper 插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 ...
- SpringBoot教程(十一) | SpringBoot集成Mybatis
上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...
- 第 5 课 SpringBoot集成Mybatis(2)-配置文件版
第五课 SpringBoot集成Mybatis(2)-配置文件版 文章目录 第五课 SpringBoot集成Mybatis(2)-配置文件版 1. 引入依赖:pom.xml 2. 配置applicat ...
- springboot项目mybatis日志自定义设置无法生效
springboot项目mybatis日志自定义设置无法生效,就是无法设置日志级别,无法对java.sql.PreparedStatement.java.sql.Connection等进行设置. 翻了 ...
最新文章
- postgresql 分组查询第一条数据
- 【转】select和epoll模型的差异
- matlab电话拨号音的合成与识别代码,实验报告 电话拨号音的合成与识别
- 粤桂协作消费对接活动 农业大健康·李喜贵:功能性农业合作研究
- 三星a7支持html吗,三星A7怎么样 三星A7特点介绍
- gpio的8种工作模式_Stm32之GPIO工作模式简介
- windows下RocketMQ下载、安装、部署、控制台
- Rust布道者张汉东倾授,入门Rust初学者都要攻破哪些难点?
- 在硅晶片上实现量子计算,英特尔可能改变了这项技术的未来
- 真正的研发之路(1)
- 在Ubuntu20.04上安装Nsight Systems
- MATLAB机械动力分析,基于MATLAB的柔性机械臂动力学分析.pdf
- email 邮件发送源代码(c++实现)
- 【刷题】【2.两数之和绝对值最小】
- 沃达丰看淡Sigfox/LoRa先行优势:NB-IoT才是运营商的未来
- springboot学习笔记11:分布式、微服务、springcloud概念区分
- c语言 udp 解包_Socket拆包和解包
- java.lang.RuntimeException:Unable to start activity ComponentInfo{com.meizu.beautify/com.my.viewc.Ma
- 网络层IP协议—ipv4
- Jupyterlab安装和配置