【达内毕业即失业】基于Springboot的持久层、业务层、控制层开发流程

本文详细介绍了基于SpringBoot的用户注册功能的开发流程,从数据库设计到实体类、持久层、业务层、控制器层的实现,包括用户数据表创建、异常处理、密码加密以及前端接口设计。在开发过程中,提到了数据库连接错误、权限问题、Mapper扫描错误和SQL语法错误等常见问题及其解决方案。
摘要由CSDN通过智能技术生成

1. 项目的分析

1)数据类型提取

接手到新的项目,首先应该大致分析这个项目中有哪些类型的数据,例如:商品、商品分类、用户、收货地址、收藏、购物车、订单……

2)数据开发顺序

然后,对这些需要处理的数据排个开发顺序,通常遵守的原则有2个:由简到难,由基础数据开始。所以以上数据的开发顺序应该是:用户 > 收货地址 > 商品分类 > 商品 > 收藏 > 购物车 > 订单。

3)设计每种数据的功能

接下来,根据需求(也可以根据现有的界面设计)分析每种数据处理时涉及的功能,例如用户数据的相关功能有:注册、登录、修改密码、修改个人资料、上传头像,并对这些功能的开发设计先后顺序,通常遵守增、查、删、改的顺序,可以是:注册 > 登录 > 修改密码 > 修改个人资料 > 上传头像。

针对每个功能,开发顺序应该是:数据库与数据表 > 实体类 > 持久层 > 业务层 > 控制器层 > 前端界面。

做项目之前,一定要把某个数据或功能拆出来,一次只解决一个问题!

2. 用户-注册-数据库与数据表

创建数据库:

CREATE DATABASE tedu_store;

使用数据库:

USE tedu_store;

创建用户数据表:

CREATE TABLE t_user (

uid INT AUTO_INCREMENT COMMENT '用户id',username VARCHAR(20) UNIQUE NOT NULL COMMENT '用户名',

password CHAR(32) NOT NULL COMMENT '密码',salt CHAR(36) COMMENT '盐值',

gender INT COMMENT '性别,0-女性,1-男性',phone VARCHAR(20)  COMMENT '电话',

email VARCHAR(50) COMMENT '邮箱',avatar VARCHAR(50) COMMENT '头像',

is_delete INT COMMENT '是否删除,0-未删除,1-已删除',created_user VARCHAR(20) COMMENT '创建执行人',

created_time DATETIME COMMENT '创建时间',modified_user VARCHAR(20) COMMENT '修改执行人',

modified_time DATETIME COMMENT '修改时间',PRIMARY KEY (uid)) DEFAULT CHARSET=UTF8;

3. 用户-注册-实体类

打开https://start.spring.io,准备创建SpringBoot项目,勾选上MySQL和MyBatis,将下载的项目导入到Eclipse中,由于添加了数据库相关依赖,首先,必须在application.properties中添加连接数据库的配置,否则运行时会报告错误:

# datasource

spring.datasource.url=jdbc:mysql://localhost:3306/tedu_store?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai

spring.datasource.username=root

spring.datasource.password=root

由于4个日志属性在各数据表中都将存在,对应的实体类也都需要添加这些属性,所以先创建实体类公共的父类BaseEntity用于定义这4个日志属性

/**实体类的基类*/

abstract class BaseEntity implements Serializable {

private static final long serialVersionUID = -5882064199939706583L;

private String createdUser;

private Date createdTime;

private String modifiedUser;

private Date modifiedTime;

// SET/GET/toString

}

由于BaseEntity只在当前cn.tedu.store.entity包中使用,且不需要单独创建对象,所以,可以将访问权限设置为默认(删除public)并添加abstract修饰符。

然后,创建cn.tedu.store.entity.User实体类:

/**用户数据的实体类*/

public class User extends BaseEntity {

private static final long serialVersionUID = 8777086855777796877L;

private Integer uid;

...

// GET/SET/toString

}
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值