当前位置: 首页 > news >正文

mybatisplus 开发流程

目录

什么是mybatisplus?

创建项目

先创建一个简单的Java项目​编辑

引入依赖

1.引入父依赖

2.引入其他依赖

springboot配置

application.yml

qppication-dev.yml

创建包

实体类

映射(创建一个接口)

构建测试环境

进行方法的实现

mybatis分页原理


什么是mybatisplus?

  MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生.

官网地址:MyBatis-Plus 🚀 为简化开发而生

创建项目

先创建一个简单的Java项目

引入依赖

1.引入父依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.13</version>
    </parent>

   该父依赖定义了大量常用依赖的默认版本号。当你的项目引入了这个父 依赖 后,在声明依赖时可以省略版本号。

2.引入其他依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

以上依赖会自动引入构建 Web 应用所需的核心组件,主要包括:

 Spring MVC:Spring 框架提供的用于构建 Web 应用的模块

 Tomcat:Spring Boot 默认集成的嵌入式 Servlet 容器,用于处理 HTTP 请求

 Jackson:用于处理 JSON 数据的 Java 库

下面我们引入与数据库相关的依赖:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

上述依赖可以帮助我们建立数据库连接

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.18</version>
        </dependency>

上述依赖帮助数据库连接池管理

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

上述依赖为mybatisplus的依赖,他的主要功能是基于 MyBatis 进行了增强,提供了大量的通用 CRUD(创建、读取、更新、删除)操作方法,开发者无需编写复杂的 SQL 语句,通过调用 MyBatis-Plus 提供的方法就能完成基本的数据库操作。


  下面这个依赖通过注解自动生成常见的代码(如 getter、setter、构造函数、toString() 方法等),从而让代码更简洁、易读。

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

下面这个依赖帮助编写单元测试

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

下面这个依赖集成了多个在 Java 测试领域广泛使用的框架,这些框架为不同类型的测试提供了丰富的功能和便捷的工具

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

引入依赖之后,我们开始创建数据库,这里就不进行详细的创建过程了

数据库创建完成后,我们开始构建项目。

springboot配置

application.yml

spring:
  profiles:
    active: dev

qppication-dev.yml

#端口
server:
  port: 9099
#数据源配置
spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/book_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      username: root
      password: root
      driver-class-name: com.mysql.cj.jdbc.Driver
  redis:
    port: 6379
    host: localhost
    database: 0
#日志
logging:
  level:
    com.ffyc.springboot: debug

创建包

实体类

@TableName("book_tab")//与数据库表名一致
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Book {
    @TableId(value = "book_id", type = IdType.AUTO)//主键,设置为自增
    private Integer id;//主键
    @TableField("book_title")//其他列使用TableField,与数据库字段一一对应
    private String title;
    @TableField("book_author")
    private String author;
    @TableField("book_price")
    private  Double price;
    @TableField("book_desc")
    private String descx;
}

映射(创建一个接口)

@Mapper//该接口生成代理实现类,无需手动实现代码
public interface IBookMapper extends BaseMapper<Book> {

}

构建测试环境

@SpringBootTest//测试的注解
@RunWith(SpringJUnit4ClassRunner.class)
public class IBookMapperTest {

    @Autowired//依赖注入
    private IBookMapper mapper;
}

进行方法的实现

    @Test
    public void testSave(){

        for (int i = 21; i < 40; i++) {
            Book book =new Book();
            book.setTitle("西游记"+i);
            book.setAuthor("吴承恩"+i);
            book.setDescx("四人");
            book.setPrice(123.34+i);
            mapper.insert(book);
        }
    }

    @Test
    public void testDelete(){
        int ID=-324280319;
        mapper.deleteById(ID);
    }

    @Test
    public void testUpdate(){
        Book book =new Book();
        book.setId(1);
        book.setDescx("四人取经");

        mapper.updateById(book);

    }

全查询

    @Test
    public void testFindAll(){
        //mapper.selectList(null);
        System.out.println(mapper.selectList(null));
    }

模糊查询 

    @Test
    public void testFindCondition(){
        LambdaQueryWrapper<Book> queryWrapper=new LambdaQueryWrapper<>();
        //queryWrapper.like(Book::getAuthor,"吴");
        queryWrapper.eq(Book::getAuthor,"吴承恩").eq(Book::getTitle,"西游记");
    }

mybatis分页原理

解决了数据量过大的问题,显示规定范围内的数据量

    @Test
    public void testPage() {
        IPage<Book> page = new Page<>();
        page.setCurrent(1);
        page.setSize(20); //limit 0,50

        LambdaQueryWrapper<Book> queryWrapper = new LambdaQueryWrapper<>();
        IPage<Book> bookIPage = mapper.selectPage(page, queryWrapper);

        System.out.println(bookIPage.getRecords());

//        books.forEach(System.out::println);

    }

相关文章:

  • 1236 - 二分查找
  • jenkins配置连接k8s集群
  • LeetCode和为k的字数组(560题)
  • 【hello git】git 扫盲(add、commit、push、reset、status、log、checkout)
  • C语言学习笔记:初阶指针
  • 在 Maven 中使用 <scope> 元素:全面指南
  • “深入浅出”系列之Linux篇:(10)基于C++实现分布式网络通信RPC框架
  • 软件开发工程师与AI工具
  • MySQL字段内容加解密使用性能验证
  • Linux学习记录1
  • Manus AI Agent介绍总结
  • js正则表达式--标识符(6)
  • 浏览器WEB播放RTSP
  • 键值对(C++实现)
  • 鸿蒙应用开发深度解析:API 14核心特性与实战指南
  • C++ Primer Plus 编程练习题 第三章 处理数据
  • 某得物 - WebView App H5调试
  • dataframe能否把列表里所有的NaN换成列表上一位的数字?
  • 蓝桥杯备考:动态规划路径类dp之迷雾森林
  • ubuntu 20.04下ZEDmini安装使用
  • 中微电力建设公司网站/高州网站seo
  • 自己如何建设网站首页/湖南疫情最新消息
  • 国内食品行业网站开发/小红书网络营销策划方案
  • 网上购物的网站有哪些/推广软文200字
  • 中铁建设集团有限公司门户网站/如何快速被百度收录
  • 公司网站建设的签订合同/百度提交网址入口