后端初始化
任务
开始后端开发,采用java springboot框架进行开发,数据库使用mysql,ORM框架使用mybatis-plus进行映射,使用lombok进行代码简化。
接下来完成项目的创建、初始化、数据库配置连接、依赖下载等工作。
具体流程
-
项目创建
- 使用Spring Assistant创建项目,并引入Spring Web
-
依赖导入
<dependencies> <!--mybatis依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.2</version> </dependency> <!--mysql依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--lombok简化代码 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> </dependencies>
-
配置文件修改
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/yourDatabaseName?useSSL=false&useUnicode=true&characterEncoding=utf-8 spring.datasource.username=yourUsername spring.datasource.password=yourPassword mybatis-plus.configuration.map-underscore-to-camel-case=false
-
model初始化
//User的实体 package com.example.demo.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.Date; @TableName(value ="user") @Data public class User implements Serializable { @TableId(type = IdType.ASSIGN_ID)//自增主键 private Long Id; private String userAccount; private String userPassword; private String userAvatar; private String userRole; private Date createTime; private Date updateTime; private String email; }
- 实现Serializable接口:这意味着User类的对象可以被序列化,这对于对象在网络间传输或者保存到磁盘等场景非常有用。
属性:- Long Id:用户ID,为主键。
- String userAccount:用户账号。
- String userPassword:用户密码。
- String userAvatar:用户头像的路径或URL。
- String userRole:用户角色,如管理员、普通用户等。
- Date createTime:记录创建时间。
- Date updateTime:记录更新时间。
- String email:用户的电子邮件地址。
- 实现Serializable接口:这意味着User类的对象可以被序列化,这对于对象在网络间传输或者保存到磁盘等场景非常有用。
-
Mapper初始化
//UserMapper package com.example.demo.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.demo.model.User; public interface UserMapper extends BaseMapper<User> { }
-
Service
//UserService package com.example.demo.service; import com.baomidou.mybatisplus.extension.service.IService; import com.example.demo.model.User; import com.example.demo.payload.DataResponse; import java.util.Date; public interface UserService extends IService<User> { }
//UserServiceImpl package com.example.demo.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.demo.mapper.UserMapper; import com.example.demo.model.User; import com.example.demo.service.UserService; import org.springframework.stereotype.Service; import java.util.Date; @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { //继承了基本的逻辑,可以在此处添加其他逻辑 }
-
Controller
//userController package com.example.demo.controller; import com.auth0.jwt.interfaces.Claim; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.example.demo.model.User; import com.example.demo.payload.DataRequest; import com.example.demo.payload.DataResponse; import com.example.demo.service.UserService; import com.example.demo.utils.CommonMethod; import com.example.demo.utils.JwtUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; @RestController @RequestMapping("/api/user") public class UserController { @Autowired private UserService userService; //用于获取所有的个人信息 @PostMapping("/getInfo") public DataResponse getInfo(@RequestBody DataRequest dataRequest){ String userAccount= dataRequest.getString("userAccount"); //查询用户信息 User user=userService.GetInfo(userAccount); Map data=new HashMap(); data.put("password",user.getUserPassword()); data.put("email",user.getEmail()); data.put("createTime",user.getCreateTime()); data.put("role",user.getUserRole()); data.put("updateTime",user.getUpdateTime()); return CommonMethod.getReturnData(200,data,"OK"); } }
@RestController:声明这是一个RESTful风格的控制器,会自动将返回的对象转换为JSON等格式响应给客户端。
@RequestMapping(“/api/user”):指定该控制器处理所有以/api/user开头的请求路径。
@Autowired注解用于自动装配UserService,使得控制器可以直接调用服务层的方法来处理业务逻辑。
@PostMapping(“/getInfo”):处理POST类型的/api/user/getInfo请求,用于获取用户的个人信息。
- 方法参数:
- @RequestBody DataRequest dataRequest:从请求体中接收一个DataRequest对象,通常包含用于查询的参数。
- 逻辑处理:
- 从DataRequest中提取userAccount字段值。
- 调用userService.GetInfo(userAccount)查询用户信息。
- 构造一个Map来存放需要返回的用户数据。
- 使用CommonMethod.getReturnData方法封装响应数据,包括状态码(200表示成功)、数据以及描述信息"OK"。
- 方法参数:
-
数据库设计
-
简单测试-接口完整
{ a.put("updateTime",user.getUpdateTime()); return CommonMethod.getReturnData(200,data,"OK"); }
``