当前位置:   article > 正文

教你如何一个钟搭建一个前(vue+element-ui)后端(springboot)分离项目(后端篇)_前后端分离架构 前端vue +element 数据库

前后端分离架构 前端vue +element 数据库

如何快速搭建一个springboot后台项目

后端采用的主要技术以及数据库

  • springboot 2.1.3
  • mybatis-plus 3.0.1
  • mysql 5.6.47
  • lombok

第一步

创建数据库表 一个demo库,在demo库里创建一个tbl_user表,附上建表语句

CREATE TABLE `tbl_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_no` varchar(128) NOT NULL COMMENT '用户编号',
  `user_name` varchar(128) NOT NULL COMMENT '用户姓名',
  `user_account` varchar(255) NOT NULL COMMENT '用户登录名',
  `mobile` varchar(20) NOT NULL COMMENT '手机',
  `tel` varchar(20) DEFAULT NULL COMMENT '电话',
  `email` varchar(32) DEFAULT NULL COMMENT '邮箱',
  `password` varchar(64) DEFAULT NULL COMMENT '密码:需加密存储',
  `address` varchar(255) DEFAULT NULL COMMENT '用户地址',
  `state` varchar(10) NOT NULL DEFAULT 'true' COMMENT '用户状态 0: 失效 ,1: 生效,默认1',
  `image_path` varchar(255) DEFAULT '' COMMENT '图像位置',
  `resv1` varchar(255) DEFAULT NULL COMMENT '随机生成的一个不重复序列号',
  `resv2` varchar(255) DEFAULT NULL COMMENT '保留字段2',
  `resv3` varchar(255) DEFAULT NULL COMMENT '保留字段3',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人用户编号',
  `create_username` varchar(64) DEFAULT NULL COMMENT '创建人名称',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间戳',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人用户编号',
  `update_username` varchar(64) DEFAULT NULL COMMENT '更新人名称',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间戳',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `idx_uk_user_03` (`mobile`) USING BTREE,
  UNIQUE KEY `idx_uk_user_01` (`user_no`) USING BTREE,
  UNIQUE KEY `idx_uk_user_04` (`user_account`) USING BTREE,
  UNIQUE KEY `idx_uk_user_02` (`email`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='用户表';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

同时新增一条记录

INSERT INTO `demo`.`tbl_user`(`id`, `user_no`, `user_name`, `user_account`, `mobile`, `tel`, `email`, `password`, `address`, `state`, `image_path`, `resv1`, `resv2`, `resv3`, `create_by`, `create_username`, `create_time`, `update_by`, `update_username`, `update_time`) VALUES (1, '202107250001', '超级管理员', 'admin', '110', '110', '1111@qq.cn', '8ddcff3a80f4189ca1c9d4d902c3c909', '天机阁', 'true', '', '1e41a575e93c4f17b5a57e737da84424', NULL, NULL, NULL, NULL, '2020-07-14 11:00:42', NULL, NULL, '2021-06-17 01:01:01');
  • 1

第二步

eclipse 安装springboot插件以及创建一个项目,如图

在这里插入图片描述
选择第二个忘记标记了

开始创建项目,项目名称springboot-demo

在这里插入图片描述
在这里插入图片描述
后面下一步就行了,不贴图了。

第三步

在pom.xml文件中导入我们需要的依赖。

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


		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>  <!-- 生成get  set方法的 -->
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>
		
		
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>     <!-- 连接数据库的 -->
		</dependency>

		<!-- MybatisPlus -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>  <!-- mybatis-plus 的 -->
			<version>3.0.1</version>
		</dependency>

		<dependency>
			<groupId>com.alibaba</groupId>  <!-- 数据库连接池 的 -->
			<artifactId>druid</artifactId>
			<version>1.1.10</version>
		</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

第四步

修改application.properties 为application.yml 连接数据库

#设置启动端口
server:
   port: 8904

spring:
  application: 
    name: springboot-demo
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&useSSL=true&characterEncoding=UTF-8
    username: root
    password: ENC(dfKn9vpRdSiRbPGTH+qnTQ==)   #换成自己的数据库密码
    type: com.alibaba.druid.pool.DruidDataSource
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

第五步

开始创建controller,service以及dao层。目录结构如图

在这里插入图片描述

第六步

开始书写各层代码

TblUserController层

该层定义了访问的url,mybatis-plus提供了很多不用写sql的api,为了偷懒我们就直接调用service的方法吧。

package com.example.demo.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.persist.entity.TblUser;
import com.example.demo.service.ITblUserService;


@RestController  // 该注解是controller 和 @ResponseBody的组合注解,前者代表把这个类加载到spring中后者是返回一个json
public class TblUserController {

	@Autowired ITblUserService iTblUserService;  // 注解导入service 层
	
	@PostMapping("/tbluser/getOne")  //定义post请求和url,获取一条记录
	public TblUser getOne(@RequestBody TblUser bo) {
		return iTblUserService.getById(bo.getId());  // 直接调用service层方法,通过id获数据
	}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
service层以及serviceImpl

//service层
package com.example.demo.service;

import com.example.demo.persist.entity.TblUser;
import com.baomidou.mybatisplus.extension.service.IService;

public interface ITblUserService extends IService<TblUser> {

}



// serviceImpl层
package com.example.demo.service.impl;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.persist.dao.TblUserDao;
import com.example.demo.persist.entity.TblUser;
import com.example.demo.service.ITblUserService;

@Service
public class TblUserServiceImpl extends ServiceImpl<TblUserDao, TblUser> implements ITblUserService {

}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
TblUserDao 层

该层主要是写sql 的时候会用到,简单的增删改查mybatis-plus已经提供了api。

package com.example.demo.persist.dao;

import org.apache.ibatis.annotations.Mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.persist.entity.TblUser;

@Mapper
public interface TblUserDao extends BaseMapper<TblUser> {

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
TblUser 实体类
package com.example.demo.persist.entity;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import lombok.Data;

@Data
public class TblUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户编号
     */
    private String userNo;

    /**
     * 用户姓名
     */
    private String userName;

    /**
     * 用户登录名
     */
    private String userAccount;

    /**
     * 手机
     */
    private String mobile;

    /**
     * 电话
     */
    private String tel;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 密码:需加密存储
     */
    private String password;

    /**
     * 用户地址
     */
    private String address;

    /**
     * 用户状态 0: 失效 ,1: 生效,默认1
     */
    private String state;

    /**
     * 图像位置
     */
    private String imagePath;

    /**
     * 随机生成的一个不重复序列号
     */
    private String resv1;

    /**
     * 保留字段2
     */
    private String resv2;

    /**
     * 保留字段3
     */
    private String resv3;

    /**
     * 创建人用户编号
     */
    private String createBy;

    /**
     * 创建人名称
     */
    private String createUsername;

    /**
     * 创建时间戳
     */
    private LocalDateTime createTime;

    /**
     * 更新人用户编号
     */
    private String updateBy;

    /**
     * 更新人名称
     */
    private String updateUsername;

    /**
     * 更新时间戳
     */
    private LocalDateTime updateTime;

 
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119

第七步 启动服务

去main启动类启动服务

在这里插入图片描述
spring和mybatis日志都打印出来则代表成功

第八步 测试

打开postman,输入localhost:8904/tbluser/getOne,post请求,请求体为id,如图
在这里插入图片描述
返回数据则代表成功。接口响应正常。

题外话

  1. mybatis-plus 官网提供了逆向工程,可以快速的帮你生成controller,service,dao,entity以及mapper文件。
  2. @RestController,@service,@mapper一定需要加上,否则spring会报错加载不到这些类
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/100301?site
推荐阅读
相关标签
  

闽ICP备14008679号