首页 > 其他分享 >SpringBoot整合mybatis(plus)单表查询和多表查询

SpringBoot整合mybatis(plus)单表查询和多表查询

时间:2023-07-14 20:11:24浏览次数:41  
标签:多表 SpringBoot 查询 test plus 单表 mybatis import com

SpringBoot整合mybatis(plus)单表查询和多表查询

前言

mybatis是springboot常用的操作数据库的框架,能够大大简化数据库操作,其可以进行xml配置开发,也可以进行注解开发。虽然现在有mybatis-plus,功能很强大,但也只是简化了单表操作,多表操作甚是麻烦。小型项目怎么用都可以,但是对于大型项目来说还是推荐mybatisXML进行多表操作,用mybatis-plus进行单表操作的组合。注解开发感觉位于这两个中间,显得有点尴尬,推荐用于小型项目。

单表查询(用mybatis-plus自带)

使用mybatis-plus进行单表查询较为简单,只需继承自带的类即可,举例如下:

//Dao层
public interface UserDao extends BaseMapper<UserInfo> {
}
//service层
public interface UserService extends IService<UserInfo> {
}

其他详情可以看mybatis-plus官网

多表查询(XML配置)

重点在多表查询查询,下面是用单表查询的例子,要想多表查询只需更改sql语句即可。

导入包

这里我用的是mybatis-plus,其完全支持原生mybatis的配置开发,还能进行方便的单表操作。

将下面代码加入pom文件中,注意版本不一定非得一样。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>

修改配置文件

我这里是配置文件是:application.yml

因为是整合进springboot,这里不需要配置官网所说的mybatis-config.xml文件,只需配置下面的文件就可以。

#配置数据库
spring:
    datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test
        username: root
        password: root

#配置mybatis-plus插件
mybatis-plus:
    global-config:
        db-config:
            id-type: auto	#用于id自增
    configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl	#日志类型
    type-aliases-package: com.test.domain	#配置实体类位置,这样以后就不用写完整的路径名了
    mapper-locations: classpath:/mappers/*.xml	#较为重要,配置mapper的xml文件位置。

添加mapper的xml文件,放到resource下的mappers目录中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.dao.UserDao">
    <select id="selectAll" resultType="UserInfo">
        select * from user_info
    </select>
</mapper>

编写实体类

这里只是个例子:UserInfo.java

package com.test.domain;

import lombok.Data;

@Data
public class UserInfo {
    private Integer id;
    private String name;
    private String password;
}

编写数据层(Dao)

UserDao.java

package com.test.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.test.domain.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
// BaseMapper是继承自mybatis-plus里的类,里面包含很多单表操作
public interface UserDao extends BaseMapper<UserInfo> {
    List<UserInfo> selectAll();
}

编写服务层(service)

  1. 接口类:UserService.java
package com.test.service;

import com.test.domain.UserInfo;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface UserService {
    List<UserInfo> getAll();

}

  1. 实现类:UserServiceImpl.java
package com.test.service.impl;

import com.test.dao.UserDao;
import com.test.domain.UserInfo;
import com.test.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;

    @Override
    public List<UserInfo> getAll() {
		return userDao.selectAll();
    }
}

编写控制层(Controller)

UserController.java

package com.test.controller;

import com.test.domain.UserInfo;
import com.test.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping("getall")
    public List<UserInfo> getAll(){
        return userService.getAll();
    }
}

标签:多表,SpringBoot,查询,test,plus,单表,mybatis,import,com
From: https://www.cnblogs.com/ydteng/p/17554880.html

相关文章

  • SpringBoot配置文件加密
    大多数的项目都是需要用到配置文件的,配置文件配置了一些必备信息,就比如数据库链接信息,缓存信息,而这些信息以明文的形式写在配置文件中,这是相当危险的,下面我就介绍一种解决方案,通过把配置信息加密放在配置文件中,这样就大大降低了风险。话不多说,直接上案例,代码比什么都管用。1.导入依......
  • springboot 使用caffeine 并监控本地缓存
    1、添加依赖<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId></dependency> 2、添加配置packagecom.example.demo.config;importcom.github.ben......
  • SpringBoot 服务接口限流,搞定!
    来源:blog.csdn.net/qq_34217386/article/details/122100904  在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。限流可以认为服务降级的一种,限流通过限制请求的流量以达到保护系统的目的。  一般来说,系统的吞吐量是可以计算出一个阈值的,为了保证系统的稳定运......
  • 根据域名查询部署的服务
    1、根据域名解析的ip,获取对应的服务器2、找到服务器后,先找nginx,一般域名都是通过nginx转发到对应的服务3、在nginx配置找到对应的域名配置,如果直接在本地配置的前端代码,不需要走下一步了4、如果配置的是本地ip端口号,根据端口号查找对应的进程ss-ltnp'sport=:<端口号>'输......
  • python之数据库:SQL注入问题,视图,触发器,事务,存储过程,函数,流程控制,索引,慢查询
    SQL注入问题(了解现象)importpymysql#连接MySQL服务端conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',password='123',database='db8_3',charset='utf8',autocommit=True#......
  • Java优化递归查询Mysql节点树数据
    示例目前有一个功能:任务计划管理,必然存在多级子任务的父子级关系,每个任务还会存在其它数据的关联表。mysql无法一次性递归查出想要的数据结构,想必很多人都会是通过根目录递归查询数据库的方式查出树结构数据。如果节点数较多,就会造成大量请求Mysql查询,效率会很低。那么如......
  • 【HMS Core】Health Kit 步数数据查询步骤咨询,血压/血氧的原子采样统计数据类型问题咨
    ​【问题描述】1、在进行步数查询---多日统计数据查询的时候,postman测试,发现了采样数据类型不匹配问题多日统计查询时,数据类型为 "com.huawei.continuous.steps.total"报错。反而数据类型为明细采样数据类型时“com.huawei.continuous.steps.delta”,正常返回。2、血压/血氧的......
  • 从零玩转系列之SpringBoot3-基础特性
    一、简介1.前置知识​ ●Java17​ ●Spring、SpringMVC、MyBatis​ ●Maven、IDEA2.环境要求环境&工具版本(orlater)SpringBoot3.1.xIDEA2023.xJava17+Maven3.5+Tomcat10.0+Servlet5.0+GraalVMCommunity22.3+NativeBuildTools0......
  • 从零玩转SpringBoot3-快速入门
    一、简介1.前置知识​ ●Java17​ ●Spring、SpringMVC、MyBatis​ ●Maven、IDEA2.环境要求环境&工具版本(orlater)SpringBoot3.1.xIDEA2023.xJava17+Maven3.5+Tomcat10.0+Servlet5.0+GraalVMCommunity22.3+NativeBuildTools0......
  • Oracle 中实现交叉表 查询
    交叉表能清晰准确的反映出数据的关系,因此在实际应用中也经常见到,但是作为二维表格的关系型数据在统计时不能简单的通过查询来实现,这里以Oracle为例简单介绍一下交叉表的查询:百度模板图片:一、创建数据表--建表createtabletbUser(Gendervarchar2(10),Handnessvarchar2(3......