前言
源码地址在最底下,各位可自取
。
现在搞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写的: