一、创建表结构:
CREATE TABLE `t_user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '姓名',
`account` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '账号',
`password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
`telephone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机号',
`creater` bigint DEFAULT NULL COMMENT '创建人ID',
`creater_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人姓名',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` bigint DEFAULT NULL COMMENT '修改人ID',
`updater_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '修改人姓名',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`version` int NOT NULL DEFAULT '0' COMMENT '版本号',
`deleted` bigint NOT NULL DEFAULT '0' COMMENT '删除标识',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=642 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测试用户';
二、插入数据:
INSERT INTO `t_user` (`name`, `account`, `password`, `telephone`, `creater`, `creater_name`, `create_time`, `updater`, `updater_name`, `update_time`, `version`, `deleted`) VALUES ('测试', 'aaa', '1234', '123432454', 1, '测试用户', NOW(), NULL, '', NOW(), 0, 0);
INSERT INTO `t_user` (`name`, `account`, `password`, `telephone`, `creater`, `creater_name`, `create_time`, `updater`, `updater_name`, `update_time`, `version`, `deleted`) VALUES ('测试新', 'were', '143243', '3456445544', 1, '测试用户', NOW(), NULL, '', NOW(), 0, 0);
INSERT INTO `t_user` (`name`, `account`, `password`, `telephone`, `creater`, `creater_name`, `create_time`, `updater`, `updater_name`, `update_time`, `version`, `deleted`) VALUES ('test', 'test', '1234324', '53324234234', 1, '测试用户', NOW(), NULL, '', NOW(), 0, 0);
INSERT INTO `t_user` (`name`, `account`, `password`, `telephone`, `creater`, `creater_name`, `create_time`, `updater`, `updater_name`, `update_time`, `version`, `deleted`) VALUES ('啦啦啦', 'trer', '54353453', '13423432432', 1, '测试用户', NOW(), NULL, '', NOW(), 0, 0);
INSERT INTO `t_user` (`name`, `account`, `password`, `telephone`, `creater`, `creater_name`, `create_time`, `updater`, `updater_name`, `update_time`, `version`, `deleted`) VALUES ('测测测', '23424', 'rwetwer4', '15158133903', 4, '测试用户', NOW(), NULL, '', NOW(), 0, 0);
INSERT INTO `t_user` (`name`, `account`, `password`, `telephone`, `creater`, `creater_name`, `create_time`, `updater`, `updater_name`, `update_time`, `version`, `deleted`) VALUES ('test', 'test', '423423re', '11111111111', 4, '测试用户', NOW(), NULL, '', NOW(), 0, 0);
INSERT INTO `t_user` (`name`, `account`, `password`, `telephone`, `creater`, `creater_name`, `create_time`, `updater`, `updater_name`, `update_time`, `version`, `deleted`) VALUES ('666', 'zzz', '343ertre34', '12345678945', 4, '测试用户', NOW(), NULL, '', NOW(), 0, 0);
三、idea创建工程:
我的idea版本较高,可选的springboot版本比较高,可以先创建,后可修改版本,勾选依赖dependencies中的web -> Spring Web及SQL -> MySQL Driver:
四:若遇到版本不一致或者需降版本可在pom.xml中修改:
可在全局中固定好工程的java版本:
五、application.yml文件配置:
server:
port: 8086
spring:
datasource:
url: jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
# 驱动mysql 8.0 以上驱动
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
configuration:
# 开启驼峰命名转换
map-underscore-to-camel-case: true
# 打印sql
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
六、自动生成mysql表java对象和mapper文件可用MybatisX插件:
七、idea工具右侧可新增连接mysql:
连接后选中需要生成java对象的表右键选择MybatisX-Generator
选中生成位置及包名:
生成选项,可自选删除不需要生成的serviceInterface文件等等:
八、生成的实体对象及mapper:
九、测试:
1、查询:
2、插入:
3、更新:
4、分页查询及map查询(分页查询实现,需在组件中引入分页,详见第十点):
十、mybatisPlus逻辑删除及乐观锁实现:
在字段属性中添加注解@TableLogic,数据便可做假删除,添加@Version注解则做乐观锁实现:
乐观锁实现还需要添加mybatisPlus的组件:
高版本的mybatisPlus可使用MybatisPlusInterceptor统一添加需要加入的组件;
十一、mybatisPlus自动填充策略:
表中一些创建时间、更新时间、创建人、更新人等可设置自动填充,实现 MetaObjectHandler接口,在字段属性中添加 @TableField(fill = FieldFill.INSERT)注解及属性:
MyMetaObjectHandler实现:
总结:springBoot + MybatisPlus整合可快速搭建工程,省去为构建工程时间,更专注于业务;