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

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

MyBatis-Plus學(xué)習(xí):快速入門與實(shí)戰(zhàn)指南

標(biāo)簽:
Java 數(shù)據(jù)庫
概述

MyBatis-Plus学习是一门旨在简化MyBatis操作的教程,它提供了大量的基础及通用操作,使编码更加简洁。本文将详细介绍MyBatis-Plus的安装配置、基本CRUD操作、条件构造器与分页查询、自定义SQL与存储过程,以及一个实战案例:用户管理系统。

MyBatis-Plus学习:快速入门与实战指南
MyBatis-Plus简介

MyBatis-Plus是什么

MyBatis-Plus 是一个 MyBatis 的增强工具,它在 MyBatis 的基础上提供了大量的基础及通用的操作,极大简化了开发人员的编码工作,使得 MyBatis 的操作更加简单、方便。MyBatis-Plus 通过简单地继承与注入的方式,使得代码更加简洁易懂。

MyBatis-Plus的优势

  1. 简化代码:MyBatis-Plus 提供了大量的 CRUD 操作方法,使得编码更加简洁。
  2. 增强功能:支持链式操作、逻辑删除、自动填充等功能,大大增强了 MyBatis 的功能。
  3. 性能优化:内置的分页插件、性能监控等插件,使得查询更加高效。
  4. SQL执行器:提供了多种 SQL 执行器,使得 SQL 操作更加灵活。

MyBatis-Plus与MyBatis的关系

MyBatis-Plus 是在 MyBatis 的基础上进行的扩展,可以理解为 MyBatis 的一个增强版。它并不是一个完全替代 MyBatis 的框架,而是在 MyBatis 的基础上增加了更多便捷的功能。MyBatis-Plus 与 MyBatis 的关系类似于 MyBatis 与 JDBC 的关系,MyBatis-Plus 可以看作是 MyBatis 在 Java 框架中的增强工具,简化了很多开发中的繁琐操作。

环境搭建与依赖配置

创建Spring Boot项目

首先,创建一个新的 Spring Boot 项目。可以通过 Spring Initializr(https://start.spring.io/)快速生成项目结构。选择合适的 Spring Boot 版本和依赖,然后下载生成的项目文件,并导入到你的开发工具中。

添加MyBatis-Plus依赖

在项目的 pom.xml 文件中添加 MyBatis-Plus 的依赖。以下是一个示例配置:

<dependencies>
    <!-- Spring Boot Starter Data JPA -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- Spring Boot Starter Test -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- MyBatis-Plus Starter -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.2</version>
    </dependency>
</dependencies>

配置数据源

application.ymlapplication.properties 文件中配置数据源信息,例如:

spring:
  dataSource:
  driverClassName: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost:3306/mydb
  username: root
  password: root
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  type-aliases-package: com.example.demo.entity
基本CRUD操作

实体类定义

定义一个简单的实体类 User

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("user")
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String username;
    private String email;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

Mapper接口与Mapper XML配置

定义一个 Mapper 接口 UserMapper

package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;

public interface UserMapper extends BaseMapper<User> {
}

配置一个简单的 Mapper XML 文件 UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
    <select id="selectById" resultType="com.example.demo.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
</mapper>

常用CRUD方法使用

UserService 服务类中,可以使用 MyBatis-Plus 提供的 CRUD 方法:

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public User getUserById(Long id) {
        return this.getById(id);
    }

    public boolean saveUser(User user) {
        return this.save(user);
    }

    public boolean updateUser(User user) {
        return this.updateById(user);
    }

    public boolean deleteUser(Long id) {
        return this.removeById(id);
    }
}
条件构造器与分页查询

使用条件构造器构建动态查询

使用 QueryWrapper 来构建复杂的查询条件:

package com.example.demo.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public List<User> getUsersByCondition(String username, String email) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        if (username != null) {
            queryWrapper.like("username", username);
        }
        if (email != null) {
            queryWrapper.like("email", email);
        }
        return this.list(queryWrapper);
    }
}

分页查询的基本使用

使用分页查询:

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public Page<User> getUsersPage(int currentPage, int pageSize) {
        Page<User> page = new Page<>(currentPage, pageSize);
        return this.page(page);
    }
}
自定义SQL与存储过程

执行自定义SQL语句

执行自定义 SQL 语句:

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public int executeCustomSql() {
        return this.baseMapper.selectCount(null);
    }
}

调用存储过程

调用存储过程:

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public int callStoredProcedure() {
        return this.baseMapper.callStoredProcedure("CALL your_stored_procedure()");
    }
}
实战案例:用户管理系统

用户管理模块的设计

用户管理模块需要实现以下功能:

  1. 用户注册 - 用户注册时需要输入用户名、密码、邮箱等信息。
  2. 用户登录 - 用户登录时需要验证用户名和密码。
  3. 用户列表查询 - 查询所有用户列表。
  4. 用户信息更新 - 更新用户信息。
  5. 用户删除 - 删除用户。

功能实现步骤详解

1. 用户注册

实现用户注册功能:

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public boolean registerUser(User user) {
        return this.save(user);
    }
}

2. 用户登录

实现用户登录功能:

package com.example.demo.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public User login(String username, String password) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username", username);
        queryWrapper.eq("password", password);
        return this.getOne(queryWrapper);
    }
}

3. 用户列表查询

实现用户列表查询功能:

package com.example.demo.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public List<User> getUserList() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        return this.list(queryWrapper);
    }
}

4. 用户信息更新

实现用户信息更新功能:

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public boolean updateUser(User user) {
        return this.updateById(user);
    }
}

5. 用户删除

实现用户删除功能:

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    public boolean deleteUser(Long id) {
        return this.removeById(id);
    }
}

通过以上示例代码,您可以看到 MyBatis-Plus 如何简化了基本的 CRUD 操作,并提供了更丰富的功能。希望这些示例能够帮助您快速上手 MyBatis-Plus,并在实际项目中应用这些知识。如果您需要更深入的学习,建议参考 MyBatis-Plus 的官方文档或在线教程。

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

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

評(píng)論

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

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

100積分直接送

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

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

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

購課補(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
提交
取消