SpringBoot权限管理开发实战2

Stella981
• 阅读 683

1.添加依赖

org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1 mysql mysql-connector-java

关于依赖的版本,可以到项目官网查看,mybatis-spring-boot-starter的项目地址是https://github.com/mybatis/spring-boot-starter,readme里可以看到版本匹配关系,tags里可以看到版本号

2.添加代码生成插件,使用的插件是MyBatis官方提供的MyBatis Generator

org.mybatis.generator mybatis-generator-maven-plugin 1.3.7 src/main/resources/mybatis/generatorConfig.xml true true mysql mysql-connector-java 5.1.46

3.添加config包,在config包下创建Mybatis配置类

package cn.gintone.guard.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

@Configuration
@MapperScan("cn.gintone.guard.**.dao")
public class MybatisConfig {
    @Autowired
    private DataSource dataSource;

    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception{
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setTypeAliasesPackage("cn.gintone.guard.**.model");//扫描Model
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:**/sqlmap/*.xml"));//扫描映射文件
        return sessionFactoryBean.getObject();
    }
}

遇到了@MapperScan注解不识别的问题,修改mybatis-spring-boot-starter的版本号为2.0.0,问题解决,再改回2.1.1还是可以用

4.修改application.yml,添加数据源配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/guard?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

5.创建数据表

DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
  `id` bigint(20) NOT NULL COMMENT '编号',
  `name` varchar(50) NOT NULL COMMENT '用户名',
  `nick_name` varchar(150) DEFAULT NULL COMMENT '昵称',
  `avatar` varchar(150) DEFAULT NULL COMMENT '头像',
  `password` varchar(100) DEFAULT NULL COMMENT '密码',
  `salt` varchar(40) DEFAULT NULL COMMENT '加密盐',
  `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
  `mobile` varchar(100) DEFAULT NULL COMMENT '手机号',
  `status` tinyint(4) DEFAULT NULL COMMENT '状态  0:禁用   1:正常',
  `dept_id` bigint(20) DEFAULT NULL COMMENT '机构ID',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `last_update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除  -1:已删除  0:正常',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  UNIQUE KEY `nick_name_UNIQUE` (`nick_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户管理';

INSERT INTO `sys_user` VALUES ('1', 'admin', '超管', null, 'bd1718f058d8a02468134432b8656a86', 'YzcmCZNvbXocrsz9dm8e', 'admin@qq.com', '13612345678', '1', '4', 'admin', '2020-09-19 11:11:11', 'admin', '2020-09-19 11:11:11', '0');

6.生成MyBatis模块,包括Model,DAO,XML映射文件,手动编写比较麻烦,使用上面配置的插件自动生成

SpringBoot权限管理开发实战2

在idea中找到生成命令,双击即可

7.编写服务接口

package cn.gintone.guard.service.impl;

import cn.gintone.guard.dao.SysUserMapper;
import cn.gintone.guard.model.SysUser;
import cn.gintone.guard.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class SysUserServiceImpl implements SysUserService {
    @Autowired
    private SysUserMapper sysUserMapper;
    @Override
    public List<SysUser> selectAll() {
        return sysUserMapper.selectAll();
    }
}

8.编写控制器

package cn.gintone.guard.controller;

import cn.gintone.guard.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("user")
public class SysUserController {
    @Autowired
    private SysUserService sysUserService;
    @GetMapping("/all")
    public Object selectAll(){
        return sysUserService.selectAll();
    }
}

9.运行测试

SpringBoot权限管理开发实战2

SpringBoot权限管理开发实战2

完整前后台代码托管在gitee上,地址 https://gitee.com/gintone/Guard

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
springmvc与fastjson集成
1.导入maven依赖<dependency<groupIdcom.alibaba</groupId<artifactIdfastjson</artifactId<version1.2.20</version</dependency2.springmvc.xml配置
Stella981 Stella981
3年前
SpringBoot 集成Mybatis 连接Mysql数据库
记录SpringBoot集成Mybatis连接数据库防止后面忘记1.添加Mybatis和Mysql依赖      <dependency    <groupIdorg.mybatis.spring.boot</groupId    <artifactIdmybatisspringbootst
Easter79 Easter79
3年前
SpringBoot权限管理开发实战2
1.添加依赖<dependency<groupIdorg.mybatis.spring.boot</groupId<artifactIdmybatisspringbootstarter</artifactId<version2.1.1</version</dependency<dependency<groupI
Wesley13 Wesley13
3年前
Java spring boot根据html模板导出PDF
maven依赖<dependency<groupIdcom.itextpdf</groupId<artifactIditextpdf</artifactId<version5.5.13</version</dependency<dependency<groupIdcom.itextpdf</groupI
Stella981 Stella981
3年前
ElasticSearch Java API 增删改查操作
1.添加pom.xml依赖<dependency<groupIdjunit</groupId<artifactIdjunit</artifactId<version4.11</version<scopetest</scope</dependency<dependency<groupI
Stella981 Stella981
3年前
Spring Boot踩坑笔记一:Spring Boot整合mybatis和通用Mapper遇到的坑
一、整合步骤1、添加启动依赖<!mybatis<dependency<groupIdorg.mybatis.spring.boot</groupId<artifactIdmybatisspringbootstarter</artifa
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这