【MyBatisPlus】快速入门、常用注解、常用配置

news2024/11/16 3:44:20

在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaEE
操作系统
Redis

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


MyBatisPlus

  • 一、快速入门
    • 1.1 引入MyBatisPlus起步依赖
    • 1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口
    • 1.3 对比Mybatis
    • 1.4 MyBatisPlus的增删改查方法
  • 二、MyBatisPlus常用注解
    • 2.1 MyBatisPlus常用注解如下
  • 三、MyBatisPlus常用配置

一、快速入门

MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。

1.1 引入MyBatisPlus起步依赖

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

1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口

public interface UserMapper extends BaseMapper<User> {
}

1.3 对比Mybatis

  • 要操作的数据库表结构:
create table user
(
    id      int not null primary key,
    account int null
);
  • Mybatis的UserMapper.java:
public interface UserMapper {
    int insert(User row);

    int insertSelective(User row);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User row);

    int updateByPrimaryKey(User row);
}
  • Mybatis的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">
<mapper namespace="com.demo.mapper.UserMapper">
  <resultMap id="BaseResultMap" type="com.demo.po.User">
  </resultMap>
  <sql id="Base_Column_List">
    id, account
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from user
    where id = #{id,jdbcType=INTEGER}
  </select>
  <insert id="insert" parameterType="com.demo.po.User">
    insert into user (id, account)
    values (#{id,jdbcType=INTEGER}, #{account,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.demo.po.User">
    insert into user
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="account != null">
        account,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=INTEGER},
      </if>
      <if test="account != null">
        #{account,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.demo.po.User">
    update user
    <set>
      <if test="account != null">
        account = #{account,jdbcType=INTEGER},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.demo.po.User">
    update user
    set account = #{account,jdbcType=INTEGER}
    where id = #{id,jdbcType=INTEGER}
  </update>
</mapper>
  • MyBatisPlus只需UserMapper.java继承 BaseMapper<>即可:
public interface UserMapper extends BaseMapper<User> {
}

1.4 MyBatisPlus的增删改查方法

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void testInsert() {
        User user = new User();
        user.setId(5);
        user.setAccount(2000);
        userMapper.insert(user);
    }

    @Test
    void testSelectById() {
        User user = userMapper.selectById(5);
        System.out.println(user);
    }

    @Test
    void testUpdateById() {
        User user = new User();
        user.setId(5);
        user.setAccount(8000);
        userMapper.updateById(user);
    }

    @Test
    void testDeleteById() {
        userMapper.deleteById(5);
    }

}

二、MyBatisPlus常用注解

MyBatisPlus:通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。

  • 类名驼峰转下划线作为表名
  • 名为id的字段作为主键
  • 变量名驼峰转下划线作为表的字段名

2.1 MyBatisPlus常用注解如下

  • @TableName:用来指定表名
  • @TableId:用来指定表中的主键字段信息
  • @TableFiled:用来指定表中的普通字段信息

MyBatisPlus官网:https://www.baomidou.com/pages/223848/#tablename


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


三、MyBatisPlus常用配置

MyBatisPlus中的配置大都是默认配置好的,我们使用的时候基本不用修改大量的配置,除非遇到特殊的情况需要设置一些配置,可以参考MyBatisPlus的官方文档进行修改。

mybatis-plus:
  type-aliases-package: com.demo.po
  mapper-locations: classpath*:mapper/**/*.xml  # 默认
  global-config:
    db-config:
      id-type: auto # id类型自增长

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv7改进:引入GSConv+Slim Neck,提升小目标检测精度

💡💡💡本文属于原创独家改进 引入了一种新方法 GSConv 来代替 SC 操作。该方法使卷积计算的输出尽可能接近 SC,同时降低计算成本; 提供了一种新的设计范式,即带有标准 Backbone 的 Slim-Neck 设计; GSConv+Slim Neck | 亲测在多个数据集实现暴力涨点; 收录: YO…

分布式内存计算Spark环境部署与分布式内存计算Flink环境部署

目录 分布式内存计算Spark环境部署 1. 简介 2. 安装 2.1【node1执行】下载并解压 2.2【node1执行】修改配置文件名称 2.3【node1执行】修改配置文件&#xff0c;spark-env.sh 2.4 【node1执行】修改配置文件&#xff0c;slaves 2.5【node1执行】分发 2.6【node2、no…

酒店报修管理系统哪家好?设备巡检系统对酒店运营有什么帮助?

酒店报修管理系统是一款关键的软件工具&#xff0c;可以帮助酒店员工和客户更有效地管理酒店的各项运营活动。下面我们将通过问答形式&#xff0c;深入探讨酒店管理系统的特性和功效&#xff0c;以便了解它如何提升酒店员工的工作效率&#xff0c;以及如何将酒店的各个部门和员…

正方形(Squares, ACM/ICPC World Finals 1990, UVa201)rust解法

有n行n列&#xff08;2≤n≤9&#xff09;的小黑点&#xff0c;还有m条线段连接其中的一些黑点。统计这些线段连成了多少个正方形&#xff08;每种边长分别统计&#xff09;。 行从上到下编号为1&#xff5e;n&#xff0c;列从左到右编号为1&#xff5e;n。边用H i j和V i j表示…

软设上午题错题知识点5

软设上午题错题知识点5 1、在ASP的内置对象中。能修改cookie中的值的是response&#xff0c;它还可以创建cookie&#xff0c;而request可以访问cookie中的参数。 2、抽象工厂&#xff08;AbstractFactory&#xff09;模式提供一个创建一系列相关或相互依赖对象的接口&#xf…

JUC并发编程——JMM详解(基于狂神说得到学习笔记)

JMM 什么是JMM (Java Memory Model) 参考文献JMM概述-CSDN博客 内存模型可以理解为在特定的操作协议下&#xff0c;对特定的内存或者高速缓存进行读写访问的过程抽象描述&#xff0c;不同架构下的物理机拥有不一样的内存模型&#xff0c;Java虚拟机是一个实现了跨平台的虚拟系…

基于springboot的高校科研管理系统(源码+调试+LW)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题&#xff0c;今天给…

JavaEE初阶学习:Servlet

1.Servlet 是什么 Servlet 是一种 Java 程序&#xff0c;用于在 Web 服务器上处理客户端请求和响应。Servlet 可以接收来自客户端&#xff08;浏览器、移动应用等&#xff09;的 HTTP 请求&#xff0c;并生成 HTML 页面或其他格式的数据&#xff0c;然后将响应发送回客户端。S…

AT6558--北斗定位芯片 一款高性能 BDS/GNSS 多模卫星导航接收机 SOC 单芯片

一、AT6558的由来&#xff1a; AT6558 是一款高性能 BDS/GNSS 多模卫星导航接收机 SOC 单芯片&#xff0c;采用 55nm CMOS工艺&#xff0c;片上集成射频前端&#xff0c;数字基带处理器&#xff0c;32位的 RISC CPU&#xff0c;电源管理功能。AT6558可以达到同类产品的顶级性能…

微信小程序怎么实现扫码一键连WiFi功能

微信小程序如何实现扫码一键连接WiFi功能 一、引言 在互联网时代&#xff0c;WiFi已经成为了人们生活中不可或缺的一部分。在公共场所或者朋友家&#xff0c;我们经常需要连接WiFi以获得更高速的网络体验。然而&#xff0c;传统的方式需要输入冗长的密码&#xff0c;十分麻烦…

[开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具

一、开源项目简介 AS-Editor 基于 Vue3.x 可视化拖拽编辑&#xff0c;页面生成工具。提升前端开发效率&#xff0c;可集成至移动端项目作为通过定义 JSON 直接生成 UI 界面。 二、开源协议 使用MIT开源协议 三、界面展示 四、功能概述 基于Vue可视化拖拽编辑&#xff0c;…

AI系统ChatGPT源码+详细搭建部署教程+支持GPT4.0+支持ai绘画(Midjourney)/支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

UE蓝图中Map的遍历

一、让Map节点连接一个Keys节点&#xff0c;这个Keys节点的功能是将Map的Kay值收集成一个数组。 二、让Keys节点连接Foreach节点来遍历Keys返回的数组。 三、使用Find节点在Map中查找Keys提供的Key值。 局部就是这样的&#xff1a;

centos7 部署oracle完整教程(命令行)

centos7 部署oracle完整教程&#xff08;命令行&#xff09; 一. centos7安装oracle1.查看Swap分区空间&#xff08;不能小于2G&#xff09;2.修改CentOS系统标识 (由于Oracle默认不支持CentOS)2.1.删除CentOS Linux release 7.9.2009 (Core)&#xff08;快捷键dd&#xff09;&…

【Django 02】数据表构建、数据迁移与管理

1. Django 构建数据表创建与数据迁移 1.1 数据表创建 1.1.1 模块功能 如前所述&#xff0c;models.py文件主要用一个 Python 类来描述数据表。运用这个类,可以通过简单的 Python 代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。今天的例子就是在…

基于YOLOv8的多目标检测与自动标注软件【python源码+PyqtUI界面+exe文件】【深度学习】

基本功能演示 摘要&#xff1a;YOLOv8是YOLO系列最新的版本&#xff0c;支持多种视觉任务。本文基于YOLOv8的基础模型实现了80种类别的目标检测&#xff0c;可以对图片进行批量自动标注&#xff0c;并将检测结果保存为YOLO格式便于后续进行其他任务训练。本文给出完整的Python实…

PW2162芯片

可知该芯片为4.5V~16V输入&#xff0c;2A工作电流 &#xff0c;下图为官方参考原理图。 输出的电压根据下公式计算&#xff0c;可知改变选用不同阻值的R1和R2&#xff0c;可控制输出不同的电压。 原理图上的电容主要用于滤波&#xff0c;电感是为了防止电流过大。 立创EDA画板…

【Qt控件之QCommandLinkButton】概述及使用

概述 QCommandLinkButton小部件提供了一个Vista风格的命令链接按钮。 命令链接是Windows Vista引入的一种新控件。它的使用方式类似于单选按钮&#xff0c;用于在一组互斥选项之间进行选择。命令链接按钮不应单独使用&#xff0c;而是作为向导和对话框中单选按钮的替代品&…

移动App安全检测的必要性,app安全测试报告的编写注意事项

随着移动互联网的迅猛发展&#xff0c;移动App已经成为人们日常生活中不可或缺的一部分。然而&#xff0c;虽然App给我们带来了便利和乐趣&#xff0c;但也伴随着一些潜在的安全风险。黑客、病毒、恶意软件等威胁着用户的隐私和财产安全&#xff0c;因此进行安全检测就显得尤为…

YOLOv7改进:动态蛇形卷积(Dynamic Snake Convolution),增强细微特征对小目标友好,实现涨点 | ICCV2023

💡💡💡本文独家改进:动态蛇形卷积(Dynamic Snake Convolution),增强细长微弱的局部结构特征与复杂多变的全局形态特征,对小目标检测很适用 Dynamic Snake Convolution | 亲测在多个数据集能够实现大幅涨点 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.…