springboot项目创建在博客第一篇,参考下!
1.pom文件 ,根据需求自行选择即可!
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com</groupId>
<artifactId>manage</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>文件管理项目</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
<druid.starter.version>1.1.9</druid.starter.version>
<mysql.version>5.1.32</mysql.version>
<lombok.version>1.16.20</lombok.version>
<mybatis.starter.version>1.3.2</mybatis.starter.version>
<mapper.starter.version>2.0.2</mapper.starter.version>
<jjwt.version>0.7.0</jjwt.version>
<joda-time.version>2.9.6</joda-time.version>
</properties>
<!-- dependencyManagement只是用于限定子项目的jar包的版本,不做实际导包操作 -->
<dependencies>
<!--jwt-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
<!--阿里云oss存储-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<!--日期格式化工具-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
<!-- swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<!-- springCloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 私服:下载jar包的位置 -->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.配置文件:
server:
port: 8085 #端口号
spring:
# application:
# name: zx-teacher
datasource: #连接数据库配置
url: jdbc:mysql://localhost:3306/file_management?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
@Data
@AllArgsConstructor
@ApiModel(value = "全局统一返回结果")
public class Result {
@ApiModelProperty(value = "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "是否成功")
private boolean success;
@ApiModelProperty(value = "返回数据")
private HashMap<String, Object> result = new HashMap<>();
//私有化,不能new 只调用以下方法
public Result() {
}
;
//调用成功方法
public static Result ok() {
Result r = new Result();//调用自己私有构造方法
r.setSuccess(true);
r.setCode(ResultCode.OK);
r.setMessage("成功");
return r;
}
//失败调用方法
public static Result error() {
Result r = new Result();
r.setSuccess(false);
r.setCode(ResultCode.ERROR);
r.setMessage("失败");
return r;
}
//调用message 修改信息
public Result message(String message) {
this.setMessage(message);
return this;
}
//修改状态码
public Result code(Integer code) {
this.setCode(code);
return this;
}
//data数据
public Result result(String key, Object value) {
this.result.put(key, value);
return this;
}
// 两个data方法名一样,参数不同,重载
public Result result(HashMap<String, Object> map) {
this.setResult(map);
return this;
}
}
//状态码返回类
public interface ResultCode {
//接口中只能定义常量 public static final可省略,且常量字母大写
public static final int OK = 200;//成功
public static final int ERROR = 500;//失败
}
4. 准备工作完毕 进入正题!
javabean实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
//文件管理实体类类
public class Manage {
/**
* 自增id
*/
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String folordName;
}
创建mapper接口
//mapper接口
@Mapper
// 继承BaseMapper 使用mybatis-pubs完成crud操作
public interface ManageMapper extends BaseMapper<Manage> {
}
service类 (javabean类就不发了)
@Service
@Transactional
//继承ServiceImpl ,ServiceImpl中继承了BaseMapper BaseMapper自带crud方法.后续直接调用方法即可完成crud 这也是mybatis-plus比mybatis强大之处
public class ManagerService extends ServiceImpl<ManageMapper, Manage> {
}
controller
1.查询所有:
@RestController
@RequestMapping("/fileManagement")//根路径
public class ManageController {
//引入service
@Resource
private ManagerService service;
@GetMapping("/list")
public Result findAll() {
try {
//获取所有数据
List<Manage> list = service.list(null);
//成功,返回数据
return Result.ok().result("list", list);
} catch (Exception e) {
e.printStackTrace();
//失败,返回错误信息
return Result.error();
}
}
2. 新增:
@PostMapping("/created")
public Result created(@RequestBody Manage manage) {
try {
//添加数据
service.save(manage);
//成功,返回结果
return Result.ok();
} catch (Exception e) {
//失败返回信息
e.printStackTrace();
return Result.error();
}
}
@PutMapping("/update")
public Result update(@RequestBody Manage manage) {
//更新文件信息并更新
boolean flag = service.updateById(manage);
//判断 flag为true 成功, 否则失败
if (flag) {
//返回删除成功
return Result.ok().message("更新成功");
}
//返回删除失败信息
return Result.error();
}
@DeleteMapping("/delete/{id}")
public Result delete(@PathVariable("id") Integer id) {
//根据id单个删除
boolean flag = service.removeById(id);
//判断 flag为true 成功, 否则失败
if (flag) {
//返回删除成功
return Result.ok().message("删除成功");
}
//返回删除失败信息
return Result.error();
}
测试:
@GetMapping("/byId/{id}")
public Result findID(@PathVariable("id") Integer id) {
Manage byId = service.getById(id);
return Result.ok().result("byId", byId);
}