MyBatis-Plus和Druid数据源

tech2022-09-07  116

文章目录

MyBatis-Plus基本介绍优势:劣势:MyBatis-Plus特性:CRUD条件构造器代码生成器 SpringBoot集成Druid数据源Druid介绍添加Druid数据源依赖添加相关配置 mybatis-pulls的使用添加依赖启动类实体类编写mapper接口测试


MyBatis-Plus基本介绍

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

优势:

SQL语句可以自由控制,更灵活,性能较高SQL与代码分离,易于阅读和维护提供XML标签,支持编写动态SQL语句

劣势:

简单CRUD操作还得写SQL语句XML中有大量的SQL要维护MyBatis自身功能很有限,但支持Plugin

MyBatis-Plus特性:

无侵入、损耗小、强大的CRUD操作支持Lambda形式调用、支持多种数据库支持主键自动生成、支持ActiveRecord模式支持自定义全局通用操作、支持关键词自动转义内置代码生成器、内置分页插件、内置性能分析插件内置全局拦截插件、内置Sql注入剥离器

CRUD

通用 CRUD 封装BaseMapper 接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis内部对象注入容器

泛型 T 为任意实体对象

参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键

对象 Wrapper 为 条件构造器

条件构造器

QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类 用于生成 sql的 where 条件, entity 属性也用于生成 sql 的 where 条件

代码生成器

MyBatis Plus是MyBatis的扩展框架,而代码生成器是MP的核心功能之一,另外还有 “条件构造器”和“通用CRUD”等功能。

SpringBoot集成Druid数据源

Druid介绍

Druid是阿里巴巴开源的一个数据源,主要用于java数据库连接池,相比spring推荐的DBCP和hibernate推荐的C3P0、Proxool数据库连接池,Druid在市场上占有绝对的优势;

添加Druid数据源依赖

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

添加相关配置

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #初始化大小,最小,最大连接数 spring.datasource.initial-size=5 spring.datasource.min-idle=5 spring.datasource.max-active=20 # 配置获取连接等待超时的时间 spring.datasource.max-wait=60000

mybatis-pulls的使用

添加依赖

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

启动类

@SpringBootApplication @MapperScan(basePackages = "com.example.pulls2.dao") public class Pulls2Application { public static void main(String[] args) { SpringApplication.run(Pulls2Application.class, args); } }

实体类

package com.example.pulls2.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) @TableField("id") private long id; @TableField("name") private String name; @TableField("logid") private long logid; }

@TableName(“指定表名”)实体名与表名不一致时需要指定 @TableId(type = IdType.AUTO)注解在主键属性上,且指定主键生成策略为自动增长 @TableField(“字段名”) 主键在属性上,指定数据库字段名

编写mapper接口

public interface UserMapper extends BaseMapper<User> { }

测试

@Resource UserMapper userMapper; @Test public void contextLoads() { } @Test public void testSekectById(){ User user=userMapper.selectById(4L); System.out.println("username:"+user.getName()); }

以上就是我对mybatis-plus和druid的一些了解,大家快去实验一下吧!

最新回复(0)