第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

MyBatis-Plus教程:新手入門與實(shí)踐指南

概述

MyBatis-Plus是一个强大的MyBatis增强工具,提供了丰富的功能来简化开发过程,包括CRUD操作、条件构造器、逻辑删除和分页插件等。本文将详细介绍MyBatis-Plus教程,涵盖安装配置、基本操作和高级功能等内容,帮助你快速掌握MyBatis-Plus的使用方法。

MyBatis-Plus简介
MyBatis-Plus是什么

MyBatis-Plus 是一个 MyBatis 的增强工具,是对 MyBatis 的高度扩展。它简化了 MyBatis 的开发,封装了 CRUD 操作,提供了一系列开箱即用的功能,如分页、条件构造器、逻辑删除等。MyBatis-Plus 并没有改变 MyBatis 的原有配置和使用习惯,而是在此基础上提供了更多的便捷操作,使得开发者可以更加专注于业务逻辑的实现。

MyBatis-Plus的优势
  1. 简化开发:通过 MyBatis-Plus,开发者无需编写大量的 CRUD 代码,可以直接使用其提供的便捷方法进行数据库操作。
  2. 强大的查询能力:提供了 QueryWrapperUpdateWrapper 等强大的查询条件构造器,极大简化了 SQL 查询条件的编写。
  3. 逻辑删除:支持逻辑删除,包括数据库表中字段的自动填充,无需修改业务代码。
  4. 分页插件:内置了分页插件,简化了分页操作。
  5. 自定义主键:支持自定义主键策略,如雪花算法、UUID 等。
  6. 自动填充:支持字段自动填充,如插入或更新时填充当前时间。
MyBatis-Plus的安装与配置

安装 MyBatis-Plus 可以通过 Maven 或 Gradle 引入依赖。以下是 Maven 的依赖配置示例:

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

配置完成后,可以在 Spring Boot 项目中配置数据库连接信息。例如,使用 application.properties 文件配置数据库连接信息:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
创建MyBatis-Plus项目
创建MyBatis-Plus项目

创建一个新的 Spring Boot 项目,可以选择 Spring Initializr,或者使用命令行工具 spring init。以下是一个使用 Spring Initializr 创建项目的示例:

  1. 访问 Spring Initializr
  2. 选择 Maven 作为构建工具,Java 语言,Spring Boot 版本,添加 webmybatis-plus 依赖。
数据库连接配置

在项目中配置数据库连接信息,编辑 application.properties 文件,添加数据库连接信息:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
实体类和Mapper接口的创建

创建实体类(例如 User),并使用 @TableName 注解指定表名:

package com.example.mybatisplus.entity;

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

@TableName("user")
@Data
public class User {
    @TableId(value = "id", type = TableId.Type.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

创建 Mapper 接口,继承 BaseMapper 接口:

package com.example.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mybatisplus.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
}
基本CRUD操作
查询操作(select)

查询操作可以使用 QueryWrapperLambdaQueryWrapper 构造查询条件:

package com.example.mybatisplus.service;

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.mybatisplus.entity.User;
import com.example.mybatisplus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> selectAll() {
        return userMapper.selectList(null);
    }

    public User selectById(Long id) {
        return userMapper.selectById(id);
    }

    public List<User> selectListByWrapper(QueryWrapper<User> queryWrapper) {
        return userMapper.selectList(queryWrapper);
    }

    public IPage<User> selectPage(Page<User> page) {
        return userMapper.selectPage(page, null);
    }
}
插入操作(insert)

插入操作可以使用 savesaveBatch 方法:

package com.example.mybatisplus.service;

import com.example.mybatisplus.entity.User;
import com.example.mybatisplus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public void insertUser(User user) {
        userMapper.insert(user);
    }

    public void insertBatch(List<User> users) {
        userMapper.insertBatch(users);
    }
}
更新操作(update)

更新操作可以使用 updateupdateById 方法:

package com.example.mybatisplus.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.mybatisplus.entity.User;
import com.example.mybatisplus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public int updateUser(User user) {
        return userMapper.update(user, new QueryWrapper<User>().eq("id", user.getId()));
    }

    public int updateById(Long id, User user) {
        user.setId(id);
        return userMapper.updateById(user);
    }
}
删除操作(delete)

删除操作可以使用 deleteByIddelete 方法:

package com.example.mybatisplus.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.mybatisplus.entity.User;
import com.example.mybatisplus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

@Service
public class UserService {

    @Autowired
private UserMapper userMapper;

    public int deleteUserById(Long id) {
        return userMapper.deleteById(id);
    }

    public int deleteUsers(List<User> users) {
        return userMapper.deleteBatchIds(users.stream().map(User::getId).collect(Collectors.toList()));
    }
}
高级功能介绍
条件构造器的使用

条件构造器 QueryWrapperLambdaQueryWrapper 可以用于构建复杂的查询条件:

package com.example.mybatisplus.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.mybatisplus.entity.User;
import com.example.mybatisplus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> selectListByWrapper(QueryWrapper<User> queryWrapper) {
        return userMapper.selectList(queryWrapper);
    }

    public List<User> selectListByLambda(LambdaQueryWrapper<User> lambdaQueryWrapper) {
        return userMapper.selectList(lambdaQueryWrapper);
    }
}
分页查询

MyBatis-Plus 内置了分页插件,简化了分页操作:

package com.example.mybatisplus.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.mybatisplus.entity.User;
import com.example.mybatisplus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public IPage<User> selectPage(Page<User> page) {
        return userMapper.selectPage(page, null);
    }
}
自动填充功能

自动填充功能支持在插入或更新时自动填充某些字段的值,例如当前时间:

package com.example.mybatisplus.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;

import java.util.Date;

@TableName("user")
@Data
public class User extends Model<User> {

    @TableId(value = "id", type = TableId.Type.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
实战案例
用户管理模块实现

实现一个简单的用户管理模块,包括增删改查功能:

package com.example.mybatisplus.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;

import java.util.Date;

@TableName("user")
@Data
public class User extends Model<User> {

    @TableId(value = "id", type = TableId.Type.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
商品信息管理模块实现

实现一个简单的商品信息管理模块,包括商品的增删改查功能:

package com.example.mybatisplus.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;

import java.util.Date;

@TableName("product")
@Data
public class Product extends Model<Product> {

    @TableId(value = "id", type = TableId.Type.AUTO)
    private Long id;
    private String name;
    private Double price;
    private Integer stock;

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
常见问题与解决方法
常见错误及解决

在使用 MyBatis-Plus 时,可能会遇到一些常见的错误,例如依赖冲突、配置问题等。这些问题通常可以通过仔细检查项目的依赖和配置来解决。

性能优化建议

为了提高 MyBatis-Plus 的性能,可以采取以下措施:

  1. 合理使用缓存:启用 MyBatis 的二级缓存或使用 Redis 等外部缓存。
  2. 减少查询数据量:优化查询条件,减少不必要的数据检索。
  3. 优化数据库索引:确保数据库表的索引合理,提高查询效率。
  4. 使用分页插件:合理利用分页插件,避免一次性加载大量数据。

通过以上方法,可以有效地提升 MyBatis-Plus 在实际项目中的性能。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消