mybatisplus复习(黑马)

news2024/11/25 16:22:09

学习目标


能够基于MyBatisPlus完成标准Dao开发

能够掌握MyBatisPlus的条件查询

能够掌握MyBatisPlus的字段映射与表名映射

能够掌握id生成策略控制

能够理解代码生成器的相关配置

一、MyBatisPlus简介


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

开发方式

基于MyBatis使用MyBatisPlus

基于Spring使用MyBatisPlus

基于SpringBoot使用MyBatisPlus

1. 入门案例

①:创建新模块,选择Spring初始化,并配置模块相关基础信息
②:选择当前模块需要使用的技术集(仅保留JDBC)
③:手动添加MyBatisPlus起步依赖
       <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

            <!--添加mybatisplus的依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>

注意事项1:由于mp并未被收录到idea的系统内置配置,无法直接选择加入

注意事项2:如果使用Druid数据源,需要导入对应坐标

④:制作实体类与表结构

(类名与表名对应,属性名与字段名对应)

新建一个数据库mybatisplyus

⑤:设置Jdbc参数(application.yml)
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTC
    username: root
    password: 123456
⑥:定义数据接口,继承BaseMapper
//使用mp,dao的写法,只需要继承一个父亲接口就可以BaseMapper,还要注意加上泛型
@Mapper
public interface UserDao extends BaseMapper<User> {

}
⑦:测试类中注入dao接口,测试功能
@SpringBootTest
public class TestUserDao {


    @Autowired
    private UserDao userDao;

    //查询所有
    @Test
    void testFindAll() {
        List<User> list = userDao.selectList(null);
        System.out.println("list=" +list);

}}

2. MyBatisPlus概述

问题导入

通过入门案例制作,MyBatisPlus的优点有哪些?

2.1 MyBatis介绍

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

  • 官网:https://mybatis.plus/ https://mp.baomidou.com/

2.2 MyBatisPlus特性

  • 无侵入:只做增强不做改变,不会对现有工程产生影响

  • 强大的 CRUD 操作:内置通用 Mapper,少量配置即可实现单表CRUD 操作

  • 支持 Lambda:编写查询条件无需担心字段写错

  • 支持主键自动生成

  • 内置分页插件

  • ……

二、标准数据层开发


1. MyBatisPlus的CRUD操作

下面用MP进行CURD

1.1添加

//    新增
@Test
    void testAdd() {
    User user = new User();
    user.setName("黑马程序员");
    user.setPassword("itheima");
    user.setAge(12);
    user.setTel("4006184000");
    int row = userDao.insert(user);
     System.out.println("row = " + row);

}

1.2 删除

这里面因为刚才不小心多增加一个相同内容 所以这里面删除的话id就用雪花

//删除
    @Test
    void testDelete() {
       // int row = userDao.deleteById(3);
        int row = userDao.deleteById(1631599267871215618L);
        System.out.println("row = " + row);
    }

我们现在把另一个也删除了

1.3 修改

  //修改
    @Test
    void testUpdate() {
         //1.先查询数据
        User user = userDao.selectById(2);
        user.setPassword("777");
        //2.修改
        int row = userDao.updateById(user);
        System.out.println("row = " + row);
    }

1.4 查询单个

     //查询单个
     @Test
     void testFindById() {
         User user = userDao.selectById(2);
         System.out.println("user = " + user);
     }

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

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

相关文章

Linux:进程间通信

目录 进程间通信目的 进程间通信分类 管道 System V IPC POSIX IPC 什么是管道 站在文件描述符角度-深度理解管道 管道使用 管道通信的四种情况 管道通信的特点 进程池管理 命名管道 创建一个命名管道 命名管道的打开规则 命名管道通信实例 匿名管道与命名管道的…

C语言实现三子棋【详解+全部源码】

大家好&#xff0c;我是你们熟悉的恒川 今天我们用C语言来实现三子棋 实现的过程很难&#xff0c;但我们一定要不放弃 三子棋1. 配置运行环境2. 三子棋游戏的初步实现2.1 建立三子棋分布模块2.2 创建一个名为board的二维数组并进行初始化2.3 搭建棋盘3. 接下来该讨论的事情3.1 …

【微信小程序】-- 网络数据请求(十九)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

Jmeter接口测试教程之【参数化技巧总结】,总有一个是你不知道的

目录&#xff1a;导读 一、随机值 二、随机字符串 三、时间戳 四、唯一字符串UUID 说起接口测试&#xff0c;相信大家在工作中用的最多的还是Jmeter。 大家看这个目录就知道jmeter的应用有多广泛了&#xff1a;https://www.bilibili.com/video/BV1e44y1X78S/? JMeter是一个…

C#:Krypton控件使用方法详解(第十一讲) ——kryptonScrollBar

今天介绍的Krypton控件中的kryptonScrollBar。下面介绍这个控件的外观属性&#xff1a;BackColor属性&#xff1a;表示控件的背景色&#xff0c;属性值如下图所示&#xff1a;BackgroundImage属性&#xff1a;表示用于该控件的背景图像&#xff0c;属性值可以为本地导入图片。B…

final修饰符使用中遇到的一些问题

文章目录final修饰符1. final不能用来修饰构造方法2. final修饰变量的一些注意问题2.1 final修饰成员变量2.2 final修饰引用类型2.2.1 演示代码中lombok链式编程介绍final修饰符 final具有“不可改变”的含义&#xff0c;它可以修饰非抽象类、非抽象成员方法和变量。 用final…

day3 动态的web 开发一个带有Servlet(Java小程序)的webapp

文章目录对于一个动态的web应用来说&#xff0c;一个请求和响应的过程有多少个角色参与&#xff0c;角色和角色之间有多少个协议开发一个带有Servlet&#xff08;Java小程序&#xff09;的webapp&#xff08;重点&#xff09;对于一个动态的web应用来说&#xff0c;一个请求和响…

【算法经典题集】二分(持续更新~~~)

&#x1f63d;PREFACE&#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐ 评论&#x1f4dd;&#x1f4e2;系列专栏&#xff1a;算法经典题集&#x1f50a;本专栏涉及到的知识点或者题目是算法专栏的补充与应用&#x1f4aa;种一棵树最好是十年前其次是现在二分整数二分机器人…

java25种设计模式之工厂模式

Java设计模式 - 工厂模式 工厂模式是一种创建模式&#xff0c;因为此模式提供了更好的方法来创建对象。 在工厂模式中&#xff0c;我们创建对象而不将创建逻辑暴露给客户端。 例子 在以下部分中&#xff0c;我们将展示如何使用工厂模式创建对象。 由工厂模式创建的对象将是…

AI for Science系列(一) :飞桨加速CFD(计算流体力学)原理与实践

AIScience专栏由百度飞桨科学计算团队出品&#xff0c;给大家带来在AI科学计算领域中的一系列技术分享&#xff0c;欢迎大家关注和积极讨论&#xff0c;也希望志同道合的小伙伴加入飞桨社区&#xff0c;互相学习&#xff0c;一起探索前沿未知。 作为系列分享的第一篇&#xff0…

工作实战之代码规范

目录 前言 一、项目初期遇到的问题 1.项目整体架构搭建&#xff0c;微服务架构从头到尾分几层&#xff0c;每层负责那些功能 2.项目服务划分 3.项目服务命名约定 4.项目层级划分 5.项目包名约定 6.技术选型&#xff0c;包括微服务组件&#xff0c;日志组件&#xff0c;数…

WebGIS行政区炫酷特效——流光特效教程

先来看下效果: 图片截图: 流光特效的思路是从行政区的边界中随着时间不断的取若干段线条换成另一种高亮颜色。 流光的第一步首先是发光,发光的教程在这里: GIS矢量图形多边形地块行政区发光,阴影发光特效实现_疯狂的GISer的博客-CSDN博客 学会发光以后,接下来需要做的…

python实现图书管理系统(超详细)

python实现图书管理系统 图书管理系统python实现图书管理系统图书管理系统:图书的功能&#xff1a;现在开始添加数据:增加数据删除数据查询数据图书位置修改图书的借出图书的还回主体界面完整代码功能运行截图实验环境&#xff1a;PyCharm 2021.1.3 x64 专业版图书管理系统: 数…

详解JAVA字节码

目录 1.概述 2.字节码文件构成 2.1.魔数 2.2.版本号 2.3.常量池 2.4.访问标志 2.5.索引 2.6.字段表 2.7.方法表 3.字节码指令 3.1.概述 3.2.指令分类 3.2.1.加载存储指令 3.2.2.运算指令 3.2.3.其他指令 3.3.完整指令工作流程 4.字节码保护 1.概述 以往的编程…

浅析安科瑞能耗监测云平台在公共建筑上的应用及未来发展趋势

摘要&#xff1a;文章以每年发布的上海市国家机关办公建筑和大型公共建筑能耗监测及分析报告变化为切入点&#xff0c;分析了历年能耗分析报告的内容和功能变化&#xff1b;介绍了上海市国家机关办公建筑和大型公共建筑能耗监测平台发展和应用历程&#xff1b;揭示了当下显现的…

MOV压敏电阻应用推荐及选型要点说明

ESD器件-MOV压敏电阻是一种非线性的电阻元器件产品&#xff0c;具有瞬态电压抑制功能&#xff0c;能够吸收电路中多余的电流&#xff0c;可保护一些敏感电路及其他电子产品设备的电路不受ESD、雷击瞬态浪涌电流的危害。对于它的一些应用范围&#xff0c;优恩小编在这里举例说明…

2.SpringSecurity源码的初探

SpringSecurity源码的初探 一、SpringSecurity中的核心组件 在SpringSecurity中的jar分为4个&#xff0c;作用分别为 jar作用spring-security-coreSpringSecurity的核心jar包&#xff0c;认证和授权的核心代码都在这里面spring-security-config如果使用Spring Security XML名称…

【python】深入了解Selenium-PageObject

1、PageObject 定义 Page Object(简称PO)模式&#xff0c;是Selenium实战中最为流行&#xff0c;并且是自动化测试中最为熟悉和推崇的一种设计模式。在设计自动化测试时&#xff0c;把页面元素和元素的操作方法按照页面抽象出来&#xff0c;分离成一定的对象&#xff0c;然后再…

MySQL - 索引 与 事务

前言 本篇介绍MySQL的索引与事务&#xff0c;了解底层索引B树的基本思想, 了解事务的4大特征, 隔离性解决事务并发等问题; 如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录前言1. 数据库索引1.1 B树1.2 B树2. 事务总…

Linux -- 查看进程 top命令 详解

我们上篇介绍了&#xff0c; Linux 中的进程等概念&#xff0c;那么&#xff0c;在Linux 中如何查看进程呢 &#xff1f;&#xff1f;我们常用到的有两个命令&#xff0c; PS 和 top 两个命令&#xff0c;今天先来介绍下 top 命令~&#xff01;top 命令 &#xff1a;主要是 交…