MyBatisPlus学习一:快速入门

前言

前面快速学习了Mybatis,现在开始快速学习MyBatisPlus

学习教程:
黑马mybatis教程全套视频教程,2天Mybatis框架从入门到精通

黑马程序员最新MybatisPlus全套视频教程,4小时快速精通mybatis-plus框架

简介

MyBatisPlus 是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率。

创建项目

创建项目

问了一下后端同事建议是创建一个springboot项目,在springboot项目里使用mybatis-plus。参考了两篇文章给弄出来了,下面是基本步骤,如果遇到啥问题别找我,不会。我是搞前端开发的,学后端属于公司要求。

参考的文章:

搭建SpringBoot项目三种方式(超详细版)

Spring Boot + MyBatis + MySQL框架搭建

1、修改为阿里源
https://start.aliyun.com/
在这里插入图片描述
2、设置项目名称、其他配置
在这里插入图片描述
3、选择springboot版本和依赖
在这里插入图片描述
4、下载依赖并运行
下载完依赖后切换到SpringbootApplication.java文件里,点击运行
在这里插入图片描述
运行成功,并且能在浏览器里访问,证明项目成功
在这里插入图片描述

项目配置

添加mybatis-plus和mysql依赖
pom.xml里添加依赖

<!-- mybatis plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
<!-- mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

mysql的依赖要与你的mysql保持一致。

添加完依赖后下载。

配置数据库信息
src/main/resources/application.properties文件里添加数据库信息

# MySQL
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123abc!@#
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

创建实体类
src/main/java/org/example/springboot文件夹下创建entity文件夹,用于存放实体类。在entity下创建实体类User.java

public class User {
    Integer id;
    String name;
    Integer age;

    String email;

    Integer sex;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                ", sex=" + sex +
                '}';
    }

}

创建mapper接口
src/main/java/org/example/springboot文件夹下创建mapper文件夹,用于存放实体类。在mapper下创建接口UseMapperr.java

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.example.springboot.entity.User;

import java.util.List;

// 继承mybatis-plus的BaseMapper接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
    // 查询所有用户
    List<User> selectAllUser();
}

创建UserMapper.xml

src/main/resources目录下创建一个名为mapper的文件夹,并在其中创建一个名为UserMapper.xml的文件。这里要注意的是文件路径不要错了。

<?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">

<!--
namespace: 命名空间
resultType:返回值的类型,一般是实体类
id:唯一标识
-->
<mapper namespace="org.example.springboot.mapper.UserMapper">

    <resultMap id="userResultMap" type="org.example.springboot.entity.User">
        <!-- property 属性是指对应的 Java 类的属性,column 属性是指对应的数据库表的字段名 -->
        <!-- 主键映射-->
        <id property="id" column="id"/>
    </resultMap>

    <!--  查询所有用户-->
    <select id="selectAllUser" resultMap="userResultMap">
        select *
        from user;
    </select>

</mapper>

创建Service和Controller
src/main/java/org/example/springboot文件夹下创建service文件夹。在service下创建接口UserService.java

import org.example.springboot.entity.User;
import org.example.springboot.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> selectAllUser() {
        // 查询id12的用户
        List<Integer> idList = new ArrayList<>();
        idList.add(1);
        idList.add(2);
        return userMapper.selectBatchIds(idList);
    }
}

src/main/java/org/example/springboot文件夹下创建controller文件夹。在controller下创建接口UserController.java

import org.example.springboot.entity.User;
import org.example.springboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/userlist")
    @ResponseBody
    public List<User> selectAllUser() {
        return userService.selectAllUser();
    }
}

测试
重启项目,在浏览器里访问userlist,看能否从数据库获取到数据
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/292209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解析《个人信息保护法》实施以来主要的变化

文章目录 前言一、二十一部配套的立法二、数据入表三、跨境规则转向四、未成年个人信息保护五、数据交易六、监管创新七、执法全覆盖八、地方聚焦场景执法九、个人信息保护诉讼十、个人信息保护公益诉讼十一、包容审慎十二、双清单上线十三、外部独立监督机构十四、个性化推荐便…

高清网络视频监控平台的应用-城市大交通系统视联网

目 录 一、应用需求 二、系统架构设计 三、功能介绍 1.实时视频监控 2.云台控制 3.语音功能 4. 录像管理与回放 5.告警联动 6.多种显示终端呈现 &#xff08;1&#xff09;CS客户端 &#xff08;2&#xff09;web客户端 &#xff08;3&#xf…

Proxy 与 defineProperty 的理解、区别、优势、劣势

一、Object.defineProperty() 文档&#xff1a;Object.defineProperty() - JavaScript | MDN 作用&#xff1a;对一个对象进行操作的方法。可以为一个对象增加一个属性&#xff0c;同时也可以对一个属性进行修改和删除。 它是在 ES5 中引入的&#xff0c;使用了 getter 和 s…

node加速镜像源 管理工具nrm安装使用

我们在开发node.js的时候,经常会遇到某些包无法下载, 或者下载太慢, 还有需要加载我们自己是有源中的包的问题, 今天推荐给大家的这款 nrm 镜像源管理工具就是解决这类问题的. 安装 方法也很简单, 执行 npm install nrm -g 就可以安装 # 安装nrm npm install nrm -g# 添加…

B端产品经理学习-对用户进行需求挖掘

目录&#xff1a; 用户需求挖掘的方法 举例&#xff1a;汽车销售系统的用户访谈-前期准备 用户调研提纲 预约用户做访谈 用户访谈注意点 我们对于干系人做完调研之后需要对用户进行调研&#xff1b;在C端产品常见的用户调研方式外&#xff0c;对B端产品仍然适用的 用户需…

yarn : 无法将“yarn”项不能识别为 cmdlet、function( is not recognized报错)

文章目录 在vscode终端使用yarn install命令下面报错在vscode控制台输入(全局安装yarn) :npm install -g yarn在执行&#xff0c;报错如下&#xff1a; 报错原因:报错进行修改如下:查看命令窗口执行的安全策略设置命令窗口执行的远程策略查看安全策略&#xff0c;已修改成功可以…

windows x86 calling convention

stdcall 全部压入栈里面 第一个参数最后一个入栈&#xff08;在栈顶&#xff09; fastcall ecx edx前两个 后面的压栈&#xff0c;顺序和stdcall一样

类加载机制之双亲委派模型、作用、源码、SPI打破双亲委派模型

双亲委派模型 双亲委派工作机制双亲委派的作用双亲委派的实现源码SPI打破双亲委派 应用程序是由三种类加载器相互配合&#xff0c;从而实现类加载&#xff0c;除此之外还可以加入自己定义的类的加载器。 类加载器之间的层次关系&#xff0c;称为双亲委派模型&#xff08;Parent…

印象笔记04: 如何将印象笔记超级会员价值最大化利用?

印象笔记04&#xff1a; 如何将印象笔记超级会员价值最大化利用&#xff1f; 为什么有这个问题 我不知道有没有人一开始接触印象笔记觉得非常好。奈何只能两个设备同步&#xff0c;局限太多。而会员活动比较优惠——就开了会员。而且我开了十年……。只能开发一下看看怎么最大…

C#用StringBuilder高效处理字符串

目录 一、背景 二、使用StringBuilder便捷、高效地操作字符串 三、实例 1.源码 2.生成效果 四、实例中知识点 1.StringBuilder类 一、背景 符串是不可改变的对象&#xff0c;字符串在创建以后&#xff0c;就不会被改变&#xff0c;当使用字符串对象的Replace、split或Re…

Flappy Bird QDN PyTorch博客 - 代码解读

Flappy Bird QDN PyTorch博客 - 代码解读 介绍环境配置项目目录结构QDN算法重要函数解读preprocess(observation)DeepNetWork(nn.Module)BirdDQN类主程序部分 介绍 在本博客中&#xff0c;我们将介绍如何使用QDN&#xff08;Quantile Dueling Network&#xff09;算法&#xf…

RK3399平台入门到精通系列讲解(实验篇)信号驱动 IO 实验

🚀返回总目录 文章目录 一、什么是信号驱动IO1.1、信号驱动IO1.2、fcntl 函数介绍二、信号驱动 IO 实验源码2.1、Makefile2.2、驱动部分代码2.3、测试应用代码一、什么是信号驱动IO 1.1、信号驱动IO 信号驱动 IO 不需要应用程序查询设备的状态,一旦设备准备就绪,会触发 SI…

ASP.NETCore WebAPI 入门 杨中科

ASP.NETCore WebAPI入门1 回顾 mvc开发模式 前端代码和后端代码是混在一个项目之中 WEB API 1、什么是结构化的Http接口。Json。 2、Web API项目的搭建。 3、Web API项目没有Views文件夹。 4、运行项目&#xff0c;解读代码结构。 5、【启用OpenAPI支持】→>swagger,在界…

视频文字想要提取应该使用哪些软件呢

随着短视频的兴起&#xff0c;快手成为了很多人喜爱的平台。有时候&#xff0c;我们看到一些有趣的视频&#xff0c;想要提取其中的文字内容&#xff0c;却不知道该如何操作。今天&#xff0c;我们就来介绍一种使用水印云快手提取视频文字的方法。 首先&#xff0c;我们需要下…

Java Review - Spring BeanUtils 踩坑记

文章目录 概述Spring BeanUtils基本使用Code忽略了属性类型导致拷贝失败同一字段在不同的类中定义的类型不一致同一个字段分别使用包装类和基本类型且没有传递实际值布尔类型的属性分别使用了基本类型和包装类型且属性名使用is开头 null值覆盖导致数据异常内部类数据无法成功拷…

根本记不住MySQL进阶查询语句

1 MySQL进阶查询 1.1 MySQL进阶查询的语句 全文以数据库location和Store_Info为实例 ---- SELECT ----显示表格中一个或数个字段的所有数据记录 语法&#xff1a;SELECT "字段" FROM "表名"; select 列名 from 表名 ; ---- DISTINCT ----不显示重复的数…

使用KVM命令集管理虚拟机

14.2.1案例分析 案例环境使用一台物理机器&#xff0c;一台服务器安装CentOS7.3的64位系统&#xff08;即node01&#xff09;&#xff0c;rhel7.1是在宿主机node01中安装的虚拟机。 14.2.2案例实施 1.安装Linux虚拟机 安装过程同上一案例&#xff0c;使用Xshell 远程控制node0…

视频号上怎么开店带货?门槛和注意事项,如下所示

我是王路飞。 视频号上现在也可以开店带货了&#xff08;严格来说从22年就可以了&#xff09;。 我们团队是在22年9月份开始入局视频号电商这个赛道的&#xff0c;在此之前是专注于抖店&#xff0c;目前两个项目都在做。 今天不聊抖店&#xff0c;主要说下视频号上开店带货的…

Win10电脑关闭OneDrive自动同步的方法

在Win10电脑操作过程中&#xff0c;用户想要关闭OneDrive的自动同步功能&#xff0c;但不知道具体要怎么操作&#xff1f;首先用户需要打开OneDrive&#xff0c;然后点击关闭默认情况下将文档保存到OneDrive选项保存&#xff0c;最后关闭在这台电脑上同步设置保存就好了。接下来…

Flink 维表关联方案

Flink 维表关联方案 1、Flink DataStream 关联维表 1&#xff09;概述 1.分类 实时数据库查找关联&#xff08;Per-Record Reference Data Lookup&#xff09; 预加载维表关联&#xff08;Pre-Loading of Reference Data&#xff09; 维表变更日志关联&#xff08;Refere…