最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot+mybatis-plus實現(xiàn)內(nèi)置的CRUD使用詳解

 更新時間:2020年12月23日 10:41:54   作者:Dlei東  
這篇文章主要介紹了springboot+mybatis-plus實現(xiàn)內(nèi)置的CRUD使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

springboot+mybatis-plus實現(xiàn)內(nèi)置的CRUD使用詳情,具體修改刪除操作內(nèi)容后文也有詳細說明

mybatis-plus的特性

  • 無侵入:只做增強不做改變,引入它不會對現(xiàn)有工程產(chǎn)生影響,如絲般順滑
  • 損耗?。簡蛹磿詣幼⑷牖綜URD,性能基本無損耗,直接面向?qū)ο蟛僮?/li>
  • 強大的 CRUD操作:內(nèi)置通用 Mapper、通用Service,僅僅通過少量配置即可實現(xiàn)單表大部分 CRUD 操作,更有強大的條件構(gòu)造器,滿足各類使用需求
  • 支持 Lambda形式調(diào)用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
  • 支持主鍵自動生成:支持多達 4種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
  • 支持 ActiveRecord 模式:支持ActiveRecord 形式調(diào)用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作
  • 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 內(nèi)置代碼生成器:采用代碼或者Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller
  • 層代碼,支持模板引擎,更有超多自定義配置等您來使用
  • 內(nèi)置分頁插件:基于 MyBatis
  • 物理分頁,開發(fā)者無需關(guān)心具體操作,配置好插件之后,寫分頁等同于普通 List 查詢
  • 分頁插件支持多種數(shù)據(jù)庫:支持MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數(shù)據(jù)庫
  • 內(nèi)置性能分析插件:可輸出 Sql 語句以及其執(zhí)行時間,建議開發(fā)測試時啟用該功能,能快速揪出慢查詢 - 內(nèi)置全局攔截插件:提供全表 delete、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預防誤操作

首先搭建好springboot項目,引入pom文件

	<!-- mybatis plus 依賴 -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.1.0</version>
		</dependency>
		<!-- mybatis 依賴 -->

		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.0.1</version>
		</dependency>

		<!-- mybatis 根據(jù)實體生成數(shù)據(jù)庫表依賴 -->
		<dependency>
			<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>
			<artifactId>mybatis-enhance-actable</artifactId>
			<version>1.1.1.RELEASE</version>
		</dependency>

連接數(shù)據(jù)庫這一步很關(guān)鍵,這里使用druid連接mysql數(shù)據(jù)庫

	<!-- mysql數(shù)據(jù)庫-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!-- druid連接數(shù)據(jù)庫 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.10</version>
		</dependency>

application-prod.yml數(shù)據(jù)源配置文件,這里使用com.mysql.cj.jdbc.Driver的druid數(shù)據(jù)源,你也可以直接寫在application.yml配置文件中

spring:
 datasource:
  url: jdbc:mysql://127.0.0.1:3306/lianxicrud?useUnicode=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
  username: root
  password: 123456
  # 使用druid數(shù)據(jù)源
  type: com.alibaba.druid.pool.DruidDataSource
  driver-class-name: com.mysql.cj.jdbc.Driver
  
server:
	port: 8191 

新建mapper的空文件

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.psd.domain.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User>{
}

新建service及impl文件
Service文件繼續(xù)IService
Impl繼承ServiceImpl<UserMapper,User>實現(xiàn)service抽象接口
注ServiceImpl查詢是直接this.list(),插入則使用userMapper.insert(user)
修改數(shù)據(jù)刪除數(shù)據(jù)在單獨在文章內(nèi)容后文補充

import com.baomidou.mybatisplus.extension.service.IService;
import com.psd.domain.User;

import java.util.List;


public interface IUserService extends IService<User>{

  /**
   * 查詢所有
   * @return
   */
  List<User> listAll();

	/**
   * id條件查詢
   * @return
   */
  User listOne(Long id);

  /***
   * 保存
   * @param user
   * @return
   */
  int insert1(User user);

}
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.psd.domain.User;
import com.psd.mapper.UserMapper;
import com.psd.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements IUserService{

  @Autowired
  private UserMapper userMapper;

  //查詢所有
  @Override
  public List<User> listAll() {
    List<User> users = this.list();
    return users;
  }

  //條件查詢
  public User listOne(Long id) {
    User user = this.getById(id);
    return user;
  }

  //保存
  public int insert1(User user){
    return userMapper.insert(user);
  }
}

user實體

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@TableName("user")
@Data
public class User{

  private long id;
  private String name;
  private int age;
  private String email;
	//..使用lombok插件省列g(shù)et set方法
}

控制器應(yīng)用層類

import com.psd.domain.User;
import com.psd.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class UserController {

  @Autowired
  private IUserService userService;

  @GetMapping("/listAll")
  public List<User> listAll(){
    List<User> users = userService.listAll();
    return users;
  }

  @GetMapping("/listOne")
  public User listOne(){
    return userService.listOne(1L);
  }

  //保存
  @GetMapping("/save")
  public void baocun1(int age,String name,String email){
    User user1 = new User();
    user1.setAge(age);
    user1.setName(name);
    user1.setEmail(email);
    userService.insert1(user1);
  }
}

mybatis-plus修改數(shù)據(jù)操作

@Test
  public void update() {
 
    //修改值
    User user = new User();
    user.setAge(“20”);
    user.setName("李四");
 
    //修改條件意思就是修改值為user.setAge(“20”);user.setName("李四");像setEmail為null的視為不變,然后條件值為id=1
    UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
    userUpdateWrapper.eq("id", "1");
    boolean update = mapper.update(user, userUpdateWrapper);
 
    System.out.println(update);
  }

mybatis-plus刪除數(shù)據(jù)操作

@Test
  public void delete() {
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    //條件意思就是刪除id=1的并且isNotNull指"id"字段不為空的
    queryWrapper
        .ge("id", 1)
        .isNotNull("id");
    int delete = mapper.delete(queryWrapper);
  }

在這里插入圖片描述

直接瀏覽器請求,那么整個過程就完成了
http://localhost:8191/save?age=18&name=張磊&email=739595798@qq.com
http://localhost:8191/user/listOne

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于springboot+mybatis-plus實現(xiàn)內(nèi)置的CRUD使用詳解的文章就介紹到這了,更多相關(guān)springboot mybatis-plus內(nèi)置CRUD內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot整合企微webhook機器人發(fā)送消息提醒

    springboot整合企微webhook機器人發(fā)送消息提醒

    這篇文章主要為大家介紹了springboot整合企微webhook機器人發(fā)送消息提醒,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • JavaWeb實現(xiàn)簡單查詢商品功能

    JavaWeb實現(xiàn)簡單查詢商品功能

    這篇文章主要為大家詳細介紹了JavaWeb實現(xiàn)簡單查詢商品功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 如何在Java中使用WebSocket協(xié)議

    如何在Java中使用WebSocket協(xié)議

    WebSocket是一種基于 TCP 協(xié)議的全雙工通信協(xié)議,可以在瀏覽器和服務(wù)器之間建立實時、雙向的數(shù)據(jù)通信,下面這篇文章主要給大家介紹了關(guān)于如何在Java中使用WebSocket協(xié)議的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • 徹底搞懂Java多線程(四)

    徹底搞懂Java多線程(四)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線程和高并發(fā)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2021-07-07
  • 修改IDEA代碼左側(cè)折疊線顏色的操作

    修改IDEA代碼左側(cè)折疊線顏色的操作

    這篇文章主要介紹了修改IDEA代碼左側(cè)折疊線顏色的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java生成隨機數(shù)之Random與ThreadLocalRandom性能比較詳解

    Java生成隨機數(shù)之Random與ThreadLocalRandom性能比較詳解

    大家項目中如果有生成隨機數(shù)的需求,我想大多都會選擇使用Random來實現(xiàn),它內(nèi)部使用了CAS來實現(xiàn)。?實際上,JDK1.7之后,提供了另外一個生成隨機數(shù)的類ThreadLocalRandom,那么他們二者之間的性能是怎么樣的呢?本文就來詳細說說
    2022-12-12
  • Mybatis基于MapperScan注解的動態(tài)代理加載機制詳解

    Mybatis基于MapperScan注解的動態(tài)代理加載機制詳解

    這篇文章主要介紹了Mybatis基于MapperScan注解的動態(tài)代理加載機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Spring中的@Conditional注解使用和原理詳解

    Spring中的@Conditional注解使用和原理詳解

    這篇文章主要介紹了Spring中的@Conditional注解使用和原理詳解,@Conditional在Spring4.0中被引入,用于開發(fā)"If-Then-Else"類型的bean注冊條件檢查,在@Conditional之前,也有一個注解@Porfile起到類似的作用,需要的朋友可以參考下
    2024-01-01
  • java.lang.ClassCastException的問題解決

    java.lang.ClassCastException的問題解決

    本文主要介紹了java.lang.ClassCastException的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • java解決請求跨域的兩種方法

    java解決請求跨域的兩種方法

    這篇文章主要為大家詳細介紹了java解決請求跨域的兩種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

宁武县| 佛教| 五原县| 个旧市| 盖州市| 毕节市| 黄冈市| 宣化县| 南木林县| 象山县| 宣城市| 射洪县| 本溪| 长沙县| 金山区| 福建省| 若尔盖县| 靖远县| 德惠市| 阿巴嘎旗| 孙吴县| 金乡县| 香格里拉县| 涿鹿县| 东乡| 屏东县| 城步| 黄浦区| 桐庐县| 大丰市| 峨眉山市| 平凉市| 逊克县| 新兴县| 迭部县| 易门县| 清新县| 红桥区| 上虞市| 乡宁县| 清涧县|