MyBatis-Plus集成Druid环境搭建的详细教程

下面我将为你介绍Mybatis-Plus集成Druid环境搭建的详细教程,包括环境搭建、配置和代码演示。首先,我们需要明确一下什么是Mybatis-Plus和Druid。

什么是MyBatis-Plus和Druid?

MyBatis-Plus

MyBatis-Plus(简称MP)是一个在MyBatis框架基础上的增强工具,省去了很多重复性的代码,提供了更为简洁的CRUD操作以及一些常见的操作,如分页、排序、批量插入/更新等。使用MyBatis-Plus可以极大的提高开发效率。

Druid

Druid是一款高性能、可扩展性强、入侵性小的Java数据库连接池。目前使用较广泛,被广泛用于 Alibaba、蚂蚁金服等大公司的项目中。

环境搭建

要使用MyBatis-Plus,我们需要先引入Mybatis依赖。在pom.xml中加入以下dependency:

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

然后需要引入Druid的相关依赖。在pom.xml中加入以下dependency:

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

配置

数据库配置

在application.yml中配置数据库连接

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root

Mybatis-Plus配置

在application.yml中添加如下配置:

mybatis-plus:
  typeAliasesPackage: com.example.demo.entity
  mapperLocations: classpath:/mapper/*.xml
  global-config:
    db-config:
      id-type: auto

Druid配置

Druid提供了很多配置,可以用于监控、日志等。在application.yml中添加以下配置:

spring:
  datasource:
    druid:
      # 配置数据源基础信息
      url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
      username: root
      password: root

      # 配置统计监控的Filter
      filters: stat

      # 配置初始化大小、最小、最大连接数
      initial-size: 10
      min-idle: 10
      max-active: 100
      # 配置获取连接等待超时的时间
      max-wait: 60000
      # 配置检测需要关闭的空闲连接间隔时间
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1
      validation-query-timeout: 10000
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打开PSCache,并且指定每个连接上PSCache的大小
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters
      filters: stat,wall,logback
      # 配置DruidDataSource监控
      filter:
        stat:
          # 开启监控统计功能
          enabled: true
          # SQL合并配置,合并多个取值为true的操作为一个,提高监控数据精度
          merge-sql: true

        # 防御SQL注入
        wall:
          enabled: true
          # 过滤多余的注释、不安全的语句等
          config:
            deleteAllow: false
            dropTableAllow: false
            truncateAllow: false
            updateWhereNoneCheck: true
            selectWhereAlwayTrueCheck: true
            selectHavingAlwayTrueCheck: false
            selectUnionCheck: true
            selectIntoOutfileCheck: true
            selectIntoDumpFileCheck: true
            callAllow: true
            multiStatementAllow: true
            commentAllow: true
            strictSyntaxCheck: true
            schemaCheck: false
            seqAllow: true
            alterTable: true
            notLikeAllow: false
          # 对被认为是攻击的SQL抛出异常,而不是简单的把它们阻断掉
          wall-filter:
            stat:
              merge-sql: true
              slow-sql-millis: 5000
              log-slow-sql: true
              slow-sql-count: 1
        logback:
          # 配置日志打印
          enabled: true
          connection-log-enabled: false
          statement-log-enabled: false
          resultset-log-enabled: false

代码演示

Entity定义

假设我们有一个User实体,定义如下:

@Data
public class User {

    private Long id;

    private String username;

    private String password;

    private String email;

    private String phone;

    private Integer age;

    private Integer status;

}

Mapper定义

使用Mybatis-Plus的话,我们只需要定义一个UserMapper接口即可,如下:

public interface UserMapper extends BaseMapper<User> {

}

Service定义

定义一个UserService接口和其实现类UserServiceImpl,代码如下:

public interface UserService extends IService<User> {
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

Controller定义

最后,我们来定义一个UserController,定义如下:

@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("{id}")
    public User getById(@PathVariable Long id) {
        return userService.getById(id);
    }

    @PostMapping
    public boolean save(@RequestBody User user) {
        return userService.save(user);
    }

    @PutMapping
    public boolean updateById(@RequestBody User user) {
        return userService.updateById(user);
    }

    @DeleteMapping("{id}")
    public boolean deleteById(@PathVariable Long id) {
        return userService.removeById(id);
    }

}

现在我们就可以通过调用这些接口来实现CRUD操作了。例如,我们发送一个POST请求到/user,请求body为:

{
  "username": "test",
  "password": "test",
  "email": "test@test.com",
  "phone": "123456789",
  "age": 18,
  "status": 1
}

这样就可以在数据库中保存一条用户信息了。

示例2:

public int updateAgeByIdAndUsername(Integer age,String username,Long id) {
        UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
        userUpdateWrapper.eq("username",username).eq("id",id).set("age",age);
        return userMapper.update(new User(), userUpdateWrapper);
    }

以上就是MyBatis-Plus集成Druid环境搭建的详细教程。希望对你有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis-Plus集成Druid环境搭建的详细教程 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Spring框架读取property属性文件常用5种方法

    非常感谢你对Spring框架的关注。Spring框架支持多种读取属性文件的方式,其中最常用的五种方法有以下: 方法1:通过@Value注解获取property文件中的属性值 在Spring框架中,可以通过@Value注解快速获取配置文件中的属性和环境变量的值。首先要在Spring配置文件中进行配置,在标签中添加如下配置: <context:proper…

    Java 2023年5月31日
    00
  • 10中java常见字符串操作实例

    以下是“10种Java常见字符串操作实例”的完整攻略: 简介 字符串是Java中最常用的数据类型之一,几乎所有的Java程序都会涉及字符串的处理。本文主要介绍Java中常见的字符串操作方法。 10种Java常见字符串操作实例 1. 字符串的比较 比较两个字符串是否相等,可以使用equals()方法。 示例1: String str1 = "Hell…

    Java 2023年5月26日
    00
  • Java的MyBatis快速入门和实战详解

    Java的MyBatis快速入门和实战详解 什么是MyBatis MyBatis 是一款轻量级的 Java 持久层框架。 它支持自定义 SQL、存储过程以及高级映射。MyBatis 通过简化 JDBC 编程来实现对数据库的操作,并将 SQL 语句与程序代码分离,使应用程序的开发和维护更加简单。 MyBatis快速入门 环境搭建 安装 JDK 安装 Maven…

    Java 2023年5月20日
    00
  • java网上图书商城(9)支付模块

    以下是关于“java网上图书商城(9)支付模块”的完整攻略。 一、支付模块的作用 支付模块是电商网站中不可或缺的重要组成部分,通过对不同的支付方式的集成,使得用户可以方便地完成订单的支付。在该网上图书商城项目中,通过集成支付宝接口,并编写相关代码,实现了用户对订单进行在线支付。 二、支付模块的基本流程 支付模块的基本流程如下: 用户选定商品并提交订单。 系统…

    Java 2023年6月15日
    00
  • java基于jdbc连接mysql数据库功能实例详解

    Java基于JDBC连接MySQL数据库功能实例详解 前言 在Java程序中,经常需要使用数据库进行数据的存储和读取,而MySQL是广泛使用的开源关系型数据库之一。本文讲解使用Java的JDBC API连接MySQL数据库的方法和步骤,以及常见的增删查改操作。 步骤 1. 导入JDBC驱动 使用Java访问MySQL数据库需要导入MySQL JDBC连接驱动…

    Java 2023年5月19日
    00
  • 基于json解析神器 jsonpath的使用说明

    下面是基于Json解析神器JsonPath的使用说明的详细攻略。 什么是JsonPath? JsonPath是一个基于Java的Json解析库,它可以用于解析Json数据并提取其中的内容。JsonPath使用类似XPath的查询语法,并支持大部分XPath表达式,同时还有一些自己的表达式。 如何使用JsonPath 步骤一:引入依赖 要使用JsonPath,…

    Java 2023年5月26日
    00
  • java 多态实例代码

    我们来讲解一下“java 多态实例代码”的完整攻略。 什么是多态 多态是指同一种行为具有多个不同表现形式或形态的能力,即同一种行为基于不同的对象会产生不同的结果。在Java中,多态是指一个对象的实例在不同的情况下会表现出不同的行为。 多态的实现 在Java中,多态的实现主要有两种方式:继承和接口。通过继承实现多态,我们可以创建一个父类,然后在子类中重写其中一…

    Java 2023年5月30日
    00
  • java实现的MD5摘要算法完整实例

    下面是关于“java实现的MD5摘要算法完整实例”的详细讲解。 什么是MD5摘要算法? MD5是一种常用的哈希算法,用于为任意长度的数据产生一个固定长度的散列值。因为MD5算法的散列值是固定长度的,所以经常用于检验数据的完整性和安全性。MD5算法的散列结果是一个128位的二进制数,通常用一个32位的16进制数表示。 MD5算法实现步骤 MD5算法的计算过程包…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部