Spring boot+MyBatisPlus项目部署

Spring boot+vue[3]--MyBatisPlus-ALOOGY WORLD (aloogychendl23.asia)

一、OEM介绍

  • ORM(Object Relational Mapping,对象关系映射)是为了解决面向对象与关系数据库存在的互不匹配现象的一种技术。

  • ORM通过使用描述对象和数据库之间映射的元数据将程序中的对象自动持久化到关系数据库中(包括了读取和存储)

  • ORM框架的本质是简化编程中操作数据库的编码。

例如:

0ee88c299af898169c1273cd7297d360.png

二、MyBatis-Plus介绍

  • MyBatis是一款优秀的数据持久层ORM框架,被广泛地应用于应用系统。

  • MyBatis能够非常灵活地实现动态SQL,可以使用XML或注解来配置和映射原生信息,能够轻松地将Java的POJO(Plain Ordinary Java Object,普通的ava对象)与数据库中的表和字段进行映射关联。

    【需要写很多配置】

  • MyBatis-Plus[red]是一个 MyBatis[blue]的增强工具,在 MyBatis 的基础上做了增强,简化了开发的代码。

0c1499acda8497c46c7572fa682ddd71.png

简介 | MyBatis-Plus (baomidou.com)

(一)添加依赖(pom.xml)

 <!--  MyBatisPlus依赖  -->       
             <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.4.2</version>
         </dependency>
   <!-- mysql驱动依赖  -->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>5.1.47</version>
         </dependency>
  <!--    数据连接池 druid    -->
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid-spring-boot-starter</artifactId>
             <version>1.1.20</version>
         </dependency>

(二)全局配置

1. 配置数据库的相关信息

 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
 spring.datasource.url=jdbc:mysql://localhost:3309/test?useSSL=false
 spring.datasource.username=root //数据库用户
 spring.datasource.password=root //数据库密码
 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 
     //指定日志输出的格式
 server.port=8088

2. 添加@MapperScan注解(映射相关的组件放mapper包里面)

 @SpringBootApplication
 @MapperScan("com.example.mpdemo.mapper") //mapper包在何处
 public class MpdemoApplication {
 ​
     public static void main(String[] args) {
         SpringApplication.run(MpdemoApplication.class, args);
     }
 ​
 }
 ​

cfee59dc5c14728cdb62c0b36bf25e04.png

3.Mybatis CRUD注解

注解功能
@Insert实现插入
@Update实现更新
@Delete实现删除
@Select实现查询
@Result实现结果集封类
@Results可以与@Result一起使用,封装多个结果类
@One实现一对多集封类
@Many实现一对多结果集封类

(三)Mapper实现

接下里完成简单user表的增删查改的操作

1. 编写entity类user.java

 package com.example.demo.entity;
 ​
 public class User {
     private int id;
     private String username;
     private String password;
     private String birthday;
 ​
     public int getId() {
         return id;
     }
 ​
     public void setId(int id) {
         this.id = id;
     }
 ​
     public String getUsername() {
         return username;
     }
 ​
     public void setUsername(String username) {
         this.username = username;
     }
 ​
     public String getPassword() {
         return password;
     }
 ​
     public void setPassword(String password) {
         this.password = password;
     }
 ​
     public String getBirthday() {
         return birthday;
     }
 ​
     public void setBirthday(String birthday) {
         this.birthday = birthday;
     }
 ​
     @Override
     public String toString() {
         return "User{" +
                 "id=" + id +
                 ", username='" + username + '\'' +
                 ", password='" + password + '\'' +
                 ", birthday='" + birthday + '\'' +
                 '}';
     }
 }
 ​

2.编写UserMapper接口,加入一下增删查改的方法

//用于操作用户表,MyBaits会根据Mapper注解,动态实现UserMapper接口(实现类),动态代理技术 //Spring会自动创建UserMapper接口实现类对应的实例

 //用于操作用户表,MyBaits会根据Mapper注解,动态实现UserMapper接口(实现类),动态代理技术
 //Spring会自动创建UserMapper接口实现类对应的实例
 @Mapper
 public interface UserMapper extends BaseMapper<User> {
 ​
 }

CRUD操作

f46d0b110ce9575b284d9e0da7c3043c.png

UserController

 package com.example.mpdemo.controller;
 ​
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.example.mpdemo.entity.User;
 import com.example.mpdemo.mapper.UserMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 ​
 import java.util.List;
 ​
 @RestController
 @CrossOrigin
 public class UserContoller {
 ​
     @Autowired
     UserMapper userMapper;
 @GetMapping("/users")
 public List query(){
       List<User>list= userMapper.find();
         System.out.println(list);
         return list;
     }
 ​
 //  插入数据
     @PostMapping("/user")
     public String save(User user){
         int r= userMapper.insert(user);
         if(r > 0){
             return "插入成功";
         }else{
             return "插入失败";
         }
     }
 }
 ​

三、MyBatis-Plus CRUD操作

  • @TableName,当表名与实体类名称不一致时,可以使用@TableName注解进行关联。

  • @TableField,当表中字段名称与实体类属性不一致时,使用@TableField进行关联

  • @TableId,用于标记表中的主键字段,MybatisPlus也提供了主键生成策略

    77cd520cb764dab1df3923beedaeda01.png

MybatisPlus是一个基于MyBatis的增强工具,它简化了MyBatis的开发流程,提供了更多的便利功能。根据提供的引用内容,可以看出在项目中使用了MybatisPlusConfig和MpConfig两个配置类来配置MybatisPlus的分页插件。在MybatisPlusConfig中,通过@Bean注解创建了一个MybatisPlusInterceptor对象,并向其中添加了PaginationInnerInterceptor分页拦截器,同时设置了数据库类型为MYSQL。而在MpConfig中,也通过@Bean注解创建了一个MybatisPlusInterceptor对象,并添加了PaginationInnerInterceptor分页拦截器。这两个配置类的作用都是为了配置MybatisPlus的分页功能。此外,在主启动类Mybatisplus01QuickstartApplication中使用了@SpringBootApplication注解来标识该类为Spring Boot的启动类。 #### 引用[.reference_title] - *1* [MybatisPlus搭建项目](https://blog.youkuaiyun.com/qq_63531917/article/details/127662515)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [MyBatis-Plus介绍与项目起步讲解](https://blog.youkuaiyun.com/aasd23/article/details/127758263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值