springboot整合mybatis+mybatis-plus,附源码地址

发布于:2023-04-28 ⋅ 阅读:(163) ⋅ 点赞:(0)

前言

源码地址在最底下,各位可自取

现在搞java的都知道mybatis-plus这个神器了吧?能解决很多curd功能,超快,用的超爽。

题外话:

之前上一家公司我说这是个神器的时候我想引进去,项目组负责人说”本来就是很简单的代码,干嘛还要工具依赖,多此一举“。原话 我一个字没改!当时我看他的意思和表情,他自己不想学,我也随便了。其实内心里很bs他!现在在的公司就在用这个东西(当时心里想还好没白学,还好多学了点东西)。只能说贼爽,很多时候可以不用为一些小而简单的功能加班。

程序员还是应该多学习,才能不被内卷而出局。

特此记录一下,可以给未来复习也好,有朋友学习也好。

开始

项目结构
在这里插入图片描述

sql表

/* 用户表 */
CREATE TABLE IF NOT EXISTS t_user
(
	id 		VARCHAR(32) NOT NULL COMMENT '用户id	',			/* 主键,用户id			*/
	userName 	 VARCHAR(64) NOT NULL COMMENT '账号名',			/* 账号名				*/
	password VARCHAR(64) NOT NULL COMMENT '密码',				/* 密码(加密后)			*/
	personName VARCHAR(32) DEFAULT '' COMMENT '账号使用者',		/* 账号使用者名称		*/
	idNumber VARCHAR(32) DEFAULT '' COMMENT '证件号码',			/* 证件号码				*/
	telphone VARCHAR(32) DEFAULT '' COMMENT '联系号码',			/* 联系号码				*/
	loginWay TINYINT DEFAULT 0 COMMENT '登录方式',				/* 登录方式				*/
	score   FLOAT   DEFAULT 5 COMMENT '用户评分',                 /* 用户评分				*/
	enabled TINYINT DEFAULT 1 COMMENT '是否认证启用',				/* 是否启用				*/
	expired TINYINT DEFAULT 0 COMMENT '是否失效',				/* 是否失效 			*/
	locked 	TINYINT DEFAULT 0 COMMENT '是否锁定',				/* 是否锁定 			*/
	createTime datetime default now() COMMENT '创建时间',        /* 创建时间 			*/
	PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息 ';
/** 标签表 */
create table t_label(
	id 		VARCHAR(32) NOT NULL COMMENT '用户id	',			/* 主键,用户id			*/
	labelName  VARCHAR(32) NOT NULL COMMENT '标签名称	',		/* 标签名称,标签名称 */
	labelName  VARCHAR(32) NOT NULL COMMENT '备注'			/* 备注,备注			*/
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='标签表';

依赖:pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!-- mybatis plus 代码生成器 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-typehandlers-jsr310</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>
    <!-- 阿里巴巴druid数据库连接池 -->
    <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.21</version>
    </dependency>

    <!-- 阿里巴巴json序列化反序列化 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.46</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
	<!-- lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

配置文件:application.yml

server:
  port: 8001

spring:
  datasource:
    name: house
    url: jdbc:mysql://127.0.0.1:3306/house?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
    username: root
    password:
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.study.pojo
  configuration:
    cache-enabled: true #缓存
    # log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: false # 配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId)
  global-config:
    db-column-underline: false # 驼峰下划线转换
    # 主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 1
    #机器 ID 部分(影响雪花ID)
    workerId: 1
    # 数据标识 ID 部分(影响雪花ID)(workerId 和 datacenterId 一起配置才能重新初始化 Sequence)
    datacenterId: 18

# PageHelper分页插件
pagehelper:
  helperDialect: mysql
  reasonable: true
  # 不建议启用,要用分页自行添加:PageHelper.startPage(pageNum,PageSize)
  supportMethodsArguments: false
  params: count=countSql

看效果

t_label是用mybatis写得:
在这里插入图片描述

在这里插入图片描述

t_user是用mybatis-plus写的:
在这里插入图片描述

在这里插入图片描述

看控制台打印有什么不同

在这里插入图片描述

源码地址<码云>:https://gitee.com/tangwenjun-ios_admin/a-study.git