首页 > 数据库 >MyBatisPlus替代繁琐的SQL语句(文章一)。爽!!!

MyBatisPlus替代繁琐的SQL语句(文章一)。爽!!!

时间:2025-01-18 10:57:26浏览次数:3  
标签:语句 hero spring Hero boot heroDao SQL Test MyBatisPlus

前置条件:能够创建SpringBoot项目(不会的可以查看主页之前的文章)
内容比较多,会分为四篇文章对MyBatisPlus剖析

  • 文章一:标准数据层开发
  • 文章二 :DQL编程控制
  • 文章三:DML编程控制
  • 文章四:细节补充


步骤一:创建SpringBoot工程,勾选数据库驱动依赖


步骤二:依赖管理(springboot2的2.5.0版本支持MyBatisPlus,大家有其他版本可以在评论区交流)相关依赖给出了注释

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.0</version>
        <relativePath/> 
    </parent>
    <groupId>com.hunan</groupId>
    <artifactId>springbootmp001</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springbootmp001</name>
    <description>springbootmp001</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>

        <!-- 阿里的druid数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>

        <!-- MyBatisPlus相关起步依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>

        <!-- Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version> <!-- 指定Lombok版本 -->
            <scope>provided</scope>
        </dependency>

        <!-- Spring Boot Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <!-- MySQL Connector -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version> <!-- 推荐使用该版本 -->
            <scope>runtime</scope>
        </dependency>

        <!-- 测试依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>3.0.4</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Spring Boot Maven Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

步骤三:创建数据库表




步骤四:设置dataSource相关属性,使用resource下的application.yml
 

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatiesdata?serverTimezone=UTC
    username: root
    password: 123456

步骤五:根据数据库表创建实体类(类名与属性均与数据库一一对应)
 

@Data  //data注解提供了所需的get、set和toString方法
public class Hero {

    private Long id;
    private String name;
    private Integer grade;
    private String skill;
    private Integer age;

}



步骤六:定义数据层接口映射配置和数据库

@Mapper
public interface HeroDao extends BaseMapper<Hero> {
}

注意点:
(1)BaseMapper<Hero>中填的是需要映射的实体类
(2)在 Spring Boot 项目中,使用 @Mapper 注解可以让 Spring 自动扫描并注册这些 Mapper 接口            为 Spring Bean。


步骤七:编写测试类
整个查询工作完成后,没有写任何SQL语句,减少了人工写SQL语句的错误

@SpringBootTest
class Springbootmp001ApplicationTests {


    @Autowired
    private HeroDao heroDao;

    @Test
    public void testGetAll() {
        List<Hero> userList = heroDao.selectList(null);
        System.out.println(userList);
    }

}





步骤八:依次实现增删改查
调用的方法都是来自于DAO接口继承的BaseMapper类中
功能一:新增(调用insert方法)

    @Test
    void testSave() {
        Hero hero = new Hero();
        hero.setName("薇恩");
        hero.setAge(28);
        hero.setGrade(8);
        hero.setSkill("终极时刻");
        heroDao.insert(hero);
    }



注:id自增的起始序号可以进行修改,如若不会,可见文章四


功能二:删除(调用deleteById方法)
 

    @Test
    void testDelete() {
        heroDao.deleteById(1880442722371649538l);
    }





功能三:修改(调用updateById方法)
 

    @Test
    void testUpdate() {
        //根据主键id进行更新操作
        Hero hero = new Hero();
        hero.setId(1L);
        hero.setName("辛吉德");
       hero.setSkill("剧毒踪迹");
        heroDao.updateById(hero);
    }





功能四:根据ID查询英雄信息(调用selectById方法)
 

 @Test
    void testGetById() {
        Hero hero = heroDao.selectById(2L);
        System.out.println(hero);
    }




功能五:查询所有(调用selectList方法)
 

 @Test
    public void testGetAll() {
        List<Hero> userList = heroDao.selectList(null);
        //用列表接收从数据库查询的全部信息
        System.out.println(userList);
    }


 

标签:语句,hero,spring,Hero,boot,heroDao,SQL,Test,MyBatisPlus
From: https://blog.csdn.net/m0_73739976/article/details/145216530

相关文章

  • MYSQL对数据的增删改查
    DML语句对数据进行增、删、改操作插入命令--插入值的个数必须和字段定义的个数相同且顺序一致insertinto<tableName>values(val...);/*不推荐使用*/insertinto<tableName>(col1,col2,...)values(val1,val2,...);--批量插入......
  • MYSQL对表的增删改查
    表的基本操作创建表createtable[ifnotexists]<tableName>(<columnName><columnType>[constraints][comment],...<columnName><columnType>[constraints][comment]);删除表droptable[ifexists]<tableName......
  • libsql 多租户namespace模式试用
    libsql支持基于db分离的多租户模式,但是需要开启namespace能力,以下是一个简单说明以及测试开启namepace我基于docker-compose部署,目前docker部署的缺少环境变量支持,我基于了cmd运行,核心是--enable-namespacesdocker-composeservices:db1:image:ghcr.io/turs......
  • MySQL与人工智能的结合:智能数据管理与预测分析
    MySQL与人工智能的结合:智能数据管理与预测分析亲爱的亦菲彦祖,欢迎来到第十六篇关于MySQL的博客!在前十五篇文章中,我们深入探讨了MySQL的基础知识、数据库设计、性能优化、索引、事务管理、安全管理、数据备份与恢复、与PHP的集成、高可用性架构设计、存储过程和触发器的应用、......
  • ubuntu postgresql 通过ip登录指南
    安装postgresql后,默认只能通过本机进行访问,如果需要在其他主机上访问postgresql数据库服务器,需要进行配置,具体步骤如下:1.安装PostgreSQL(如果尚未安装)如果PostgreSQL尚未安装,可以使用以下命令安装:1sudoaptupdate2sudoaptinstallpostgresqlpostgresql-contrib......
  • MySQL权限管理全面指南:确保数据库安全
    MySQL的权限管理是保障数据库安全的关键。本文将全面介绍MySQL权限管理的各个方面,从基本概念到实际操作,再到安全最佳实践。©ivwdcwso(ID:u012172506)1.基本概念用户:格式为’user’@‘host’,如’zhangsan’@‘localhost’权限:如SELECT,INSERT,UPDATE,DELETE等......
  • ubuntu mysql 通过ip登录指南
    详细步骤:1.安装mysql首先,在ubuntu上安装mysql,打开终端,并执行以下命令:1sudoapt-getupdate2sudoapt-getinstallmysql-server2.登录MySQL首先,使用MySQL的root用户登录到MySQL服务器:sudomysql-uroot-p系统会提示你输入root用户的密码。默认是空,直......
  • 【MySQL架构】图解
    你是一个程序员,你做了一个网站应用,站点里的用户数据,需要存到某个地方,方便随时读写。很容易想到可以将数据存到文件里。但如果数据量很大,想从大量文件数据中查找某部分数据,并更新,是一件很痛苦的事情。那么问题就来了,有办法可以解决这个问题吗?好办,没有什么是加一层中间层不能解......
  • 【MySQL】:事务
    朋友们、伙计们,我们又见面了,本期来给大家带来数据库事务的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!C语言专栏:C语言:从入门到精通数据结构专栏:数据结构个 人 主 页 :stackY、C++专栏  :C++Linux专 栏 :Linux目录1.......
  • 【SQL教程】Day01-03: MySQL简介及安装指南
    MySQL是目前应用最广泛的开源关系数据库管理系统。它最初由瑞典的MySQLAB公司开发,后来该公司在2008年被SUN公司收购,紧接着在2009年SUN被Oracle公司收购,从而使得MySQL成为Oracle旗下的产品。MySQL的特点和发展历程使其成为全球许多企业和开发者的首选数据库。1.MySQL架构概览......