Mybatis-Plus快速入门

news2024/11/25 12:40:20
  • 入门案例

  • MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率
  • 开发方式
  • 基于MyBatis使用MyBatisPlus
  • 基于Spring使用MyBatisPlus
  • 基于SpringBoot使用MyBatisPlus
  • SpringBoot整合MyBatis开发过程(复习)
  • 创建SpringBoot工程
  • 勾选配置使用的技术
  • 设置dataSource相关属性(JDBC参数)
  • 定义数据层接口映射配置
  • SpringBoot整合MyBatisPlus入门程序
  • 1:创建新模块,选择Spring初始化,并配置模块相关基础信息
  • 2:选择当前模块需要使用的技术集(仅保留JDBC)
  • 3:手动添加mp起步依赖
  • 由于mp并未被收录到idea的系统内置配置,无法直接选择加入
  • <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.1</version>
    </dependency>
  • 4:设置Jdbc参数(application.yml)
  • spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/dp1?useUnicode=true&characterEncoding=utf-8
        username: root
        password: root
  • 5:制作实体类与表结构(类名与表名对应,属性名与字段名对应)
  • -- 创建person表
    CREATE TABLE person(
     id BIGINT PRIMARY KEY auto_increment, -- 主键id
      name VARCHAR(20), -- 姓名
    	password VARCHAR(40), -- 密码
    	age VARCHAR(20), -- 年龄
    	tel VARCHAR(40) -- 电话
    );
    -- 添加数据
    INSERT INTO person VALUES (NULL,'张三',4243,13,142424),(NULL,'李四',3256,16,145623),(NULL,'王五',9256,20,197864);
  • @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Person {
        private Long id;
        private String name;
        private String password;
        private String age;
        private String tel;
    }
  • 6:定义数据接口,继承BaseMapper<User>
  • @Mapper
    public interface PersonDao extends BaseMapper<Person> {
    
    }
  • 7:测试类中注入dao接口,测试功能
  • @SpringBootTest
    class MybatisPlus01ApplicationTests {
        @Autowired
        private PersonDao personDao;
    
        @Test
        void testGetAll() {
            List<Person> personList = personDao.selectList(null);
            System.out.println(personList);
        }
    }
  • MyBatisPlus特性

  • 无侵入:只做增强不做改变,不会对现有工程产生影响
  • 强大的CRUD操作:内置通用 Mapper,少量配置即可实现单表CRUD操作
  • 支持Lambda:编写查询条件无需担心字段写错
  • 支持主键自动生成
  • 内置分页插件
  • 标准数据层CRUD功能

  • 新增
  • 自定义接口
  • boolean save(T t)
  • MP接口
  • int insert(T t)
  • @Test
        void testSave(){
            Person person = new Person();
            person.setName("后端程序员");
            person.setPassword("icpc");
            person.setAge("12");
            person.setTel("673512");
            personDao.insert(person);
        }
  •  删除
  • 自定义接口
  • boolean delete(int id)
  • MP接口
  • int deleteById(Serializable id)
  • @Test
        void testDelete(){
            personDao.deleteById(1607368447103193090L);
        }
  • 修改
  • 自定义接口
  • boolean update(T t)
  • MP接口
  • int updateById(T t)
  • @Test
        void testUpdate(){
            Person person = new Person();
            person.setId(1L);
            person.setName("Tom777");
            personDao.updateById(person);
        }
  • 根据id查询
  • 自定义接口
  • T getById(int id)
  • MP接口
  • T selectById(Serializable id)
  • @Test
        void testGetById(){
            Person person = personDao.selectById(2L);
            System.out.println(person);
        }
  • 查询全部
  • 自定义接口
  • List<T> getAll()
  • MP接口
  • List<T> selectList()
  • 分页查询
  • 自定义接口
  • PageInfo<T> getAll(int page, int size)
  • MP接口
  • IPage<T> selectPage(IPage<T> page)
  • 按条件查询
  • 自定义接口
  • List<T> getAll(Condition condition)
  • MP接口
  • IPage<T> selectPage(Wrapper<T> queryWrapper)

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

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

相关文章

DSP-Z变换

目录 Z变换的定义: Z变换的收敛域: 收敛域的定义: 收敛条件&#xff1a; Z变换收敛域的形状&#xff1a; 阿贝尔定理&#xff1a; 对于有限长序列的收敛域&#xff1a; Z变换的性质: 线性&#xff1a; 收敛域取交集&#xff1a; 时移&#xff1a; 指数相乘&#xf…

Java和Web前端哪个有发展前景?

Java和Web前端都是当今技术行业里的热门岗位&#xff0c;岗位招聘需求量大&#xff0c;人才竞争度高&#xff0c;同学们掌握这两个岗位里其中任何一个的相关主流技术&#xff0c;都可以找到一份不错的职位。下面请允许笔者做一个简要的分析阐述&#xff1a; 一、Web前端 Web前…

5 Redis

5.1 Redis 5.1.1 前言 前面使用到的mysql数据库会出现以下问题 由于用户量增大&#xff0c;请求数量也随之增大&#xff0c;数据压力过大 多台服务器之间数据不同步 多台服务器之间的锁&#xff0c;已经不存在互斥性了。 5.1.2 Redis 5.1.2.1 什么是Redis Redis&#x…

GO语言基础-05-循环和语句-select语句

文章目录1. 概述1.1 作用1.2 和switch比较1.3 执行过程2. 语法示例3. 完整示例1. 概述 1.1 作用 监听channel的数据流动 1.2 和switch比较 相同 开始的一个新的选择块&#xff0c;每个选择条件由case语句来描述。 不同 switch语句&#xff1a;可以选择任何使用相等比较的…

SpringCloud 协同开发方案

相比Springboot开发&#xff0c;SpringCloud开发要复杂的多&#xff0c;因为涉及服务的注册发现&#xff0c;多个微服务模块间的调用等。 最简单的解决方案是每个开发者都在本地启动一套完整的开发环境&#xff0c;包括网关、nacos等各个组成微服务的模块&#xff0c;如果系统…

Hive 学习Demo

背景介绍 陌陌作为聊天平台每天都会有大量用户在线&#xff0c;会出现大量的聊天数据&#xff0c;通过对聊天数据分析&#xff0c;可以更好的构建精确的用户画像&#xff0c;为用户提供更好的服务以及实现高ROI(投资回报率)的平台运营推广&#xff0c;给公司的发展决策提供精确…

智能网联汽车渗透率变化图显示预计

IDC 于 2020 年最新发布的《全球智能网 联汽车预测报告&#xff08;2020-2024&#xff09;》数据显示&#xff0c;尽管受新冠肺炎疫情冲击&#xff0c;2020 年全球智能网联汽车出货量预计较上一年下滑 10.6%&#xff0c;约为 4440 万辆&#xff0c;但到 2024 年全球智能网联汽车…

广播机制基础知识

广播机制 1.广播机制 1.1概述 1.1.1引入 1.广播的生活案例 记得以前读书的时候&#xff0c;每个班级都会有一个挂在墙上的大喇叭&#xff0c;用来广播一些通知&#xff0c;比如&#xff0c;开学要去搬书&#xff0c;广播&#xff1a; "每个班级找几个同学教务处拿书"…

商业智能BI与业务结构分析

做商业智能BI还必须熟悉行业和业务知识&#xff0c;不结合行业业务知识&#xff0c;商业智能BI的项目是很难落地的。商业智能BI的本质其实是企业的业务和管理思维的落地。企业的高层、业务部门的管理人员为什么要通过商业智能BI去看报表&#xff0c;他们看的是什么&#xff0c;…

深度学习-吴恩达(C3)结构化你的机器学习工程

结构化你的机器学习工程改变了深度学习的错误 比如你分割数据的方法&#xff0c;分割成train&#xff0c;development(dev)或叫valid&#xff0c;test&#xff0c;所以最好的实践方法是什么&#xff1f;了解更多端对端的深度学习&#xff0c;进而了解到你是否需要使用它&#…

Elasticsearch 核心技术(三):Kibana 安装、配置、运行(Windows 版)

❤️ 个人主页&#xff1a;水滴技术 &#x1f680; 支持水滴&#xff1a;点赞&#x1f44d; 收藏⭐ 留言&#x1f4ac; &#x1f338; 订阅专栏&#xff1a;大数据核心技术从入门到精通 文章目录一、下载 Kibana二、安装 Kibana三、配置 Kibana1. 主机名2. 端口3. Elasticsea…

Spark基础入门----框架概述

Spark Spark 框架概述 Spark 诞生背景 Apache Spark是用于大规模数据处理的统一分析引擎 Spark 最早源于一片论文&#xff0c;该论文是由加州大学柏克莱分校的Matei Zaharia等人发表。论文中提出了一种弹性分布式数据集(RDD)的概念。 总的说&#xff0c;Spark借鉴了Map Red…

Android进阶——sdk开发和apk开发有什么区别?

sdk SDK 就是 Software Development Kit 的缩写&#xff0c;中文意思就是“软件开发工具包”。即辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。 apk APK&#xff08;全称&#xff1a;Android application package&#xff0c;Android应用程序包&#…

【重学Javase】—— 数组(从头剖析一维数组,二维数组,array常用工具类以及数组的两种常见异常)

目录 数组的概述 1、数组的理解&#xff1a; 2、数组的特点&#xff1a; 3、数组的分类&#xff1a; 一维数组 1、一维数组的声明与初始化 2、一维数组元素的引用&#xff1a;通过角标的方式调用 3、数组的属性&#xff1a;length 4、一维数组的遍历&#xff08;for循…

mysql 备份还原数据库,java使用Runtime对象执行mysqldump备份数据库

为了提高系统可用性,通过java写定时任务每天晚上定时备份mysql数据库,然后把备份的.sql文件(建议在压缩一次上传,减少文件体积提高传输效率)调用文件上传服务器提供的文件上传接口上传到文件服务器,达到数据库服务器损坏后快速还原数据库的目的。以windows系统为例。linux注…

high-resolution image synthesis with latent diffusion models

如何通俗理解扩散模型&#xff1f; - 知乎泻药。实验室最近人人都在做扩散&#xff0c;从连续到离散&#xff0c;从CV到NLP&#xff0c;基本上都被diffusion洗了一遍。但是观察发现&#xff0c;里面的数学基础并不是模型应用的必须。其实大部分的研究者都不需要理解扩散模型的数…

理解linux虚拟网络设备veth

理解linux虚拟网络设备veth 上一章介绍了linux network namespace,接着来讨论一下如何让一个独立的网络命名空间的和主机的网络相互通信,这里我们需要用到linux虚拟网络设备veth。 veth设备 veth设备总是成对出现,通常就是用来连接不同网络命名空间(下面开始简称…

基于线性表的图书管理系统实验报告

目录 基于线性表的图书管理系统实验报告 1、成员分工 2、数据字典 3、抽象数据类型定义 4、图书存储结构描述 5、基本操作的算法描述 6、测试 6.1测试数据集 6.2测试程序运行结果截图 7、存在的问题与思考 基于线性表的图书管理系统实验报告 组长&#xff1a;xxx 组…

2022年学习机器人和人工智能的一些体会

前些日子开会&#xff0c;很受启发&#xff0c;比如有大佬指出&#xff1a; 总结&#xff1a;一般是高屋建瓴&#xff0c;通常是级别高的总揽全局&#xff0c;小虾虾不适用&#xff1b;感想和体会&#xff1a;小虾虾们学习完大佬讲话之后&#xff0c;自己的收获。 这才发现写博…

CRM能给企业带来什么价值

对于任何企业而言&#xff0c;客户都是企业生存下去的根本&#xff0c;管理客户也是企业一直在做的事情&#xff0c;有的企业尝试采用CRM来管理客户&#xff0c;有的企业还在观望CRM能给企业带来什么价值。 前言 对于任何企业而言&#xff0c;客户都是企业生存下去的根本&…