提交 4342e51c authored 作者: mry's avatar mry

对用户的增删改查完成

上级
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jenkins</groupId>
<artifactId>Jenkins</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.5.4</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.jenkins;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class JenkinsRunApp {
public static void main(String[] args) {
SpringApplication.run(JenkinsRunApp.class,args);
}
}
package com.jenkins.config;
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket adminApiConfig() {
// docket 摘要
return new Docket(DocumentationType.SWAGGER_2)
.groupName("userApi")
.apiInfo(adminApiInfo())
.select() // 过滤器,用于实现对接口的分组,过滤掉不希望放在adminApi组的接口信息
//只显示admin路径下的页面
.paths(Predicates.or(PathSelectors.regex("/users.*")))
.build();
}
private ApiInfo adminApiInfo() {
return new ApiInfoBuilder()
.title("用户管理")
.description("本文档描述了对用户的管理")
.version("1.0")
.contact(new Contact("MRY", "https://blog.csdn.net/qq_44786855?type=lately", "2779585601@qq.com"))
.build();
}
}
\ No newline at end of file
package com.jenkins.controller;
import com.jenkins.entity.User;
import com.jenkins.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.mockito.CheckReturnValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
@RestController
@CheckReturnValue
@RequestMapping("/users")
@Api(tags = "用户信息管理",description = "对用户信息的CRUD")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping
@ApiOperation(value = "查询所有用户信息")
public ResponseEntity<List<User>> find(){
List<User> result = userService.find();
if (result.size() == 0) {
return ResponseEntity.status(404).body(result);
}else {
return ResponseEntity.ok(result);
}
}
@GetMapping("/{id}")
@ApiOperation(value = "按id查询指定用户")
public ResponseEntity<Optional<User>> findById(@PathVariable Integer id){
Optional<User> result = userService.findById(id);
if (id == 0 || id == null){
return ResponseEntity.status(404).body(result);
}else {
return ResponseEntity.ok(result);
}
}
@PostMapping
@ApiOperation(value = "添加用户")
public ResponseEntity<User> insert(@RequestBody User user){
User result = userService.insert(user);
if (user.getId() == 0 || user.getId() == null){
return ResponseEntity.status(404).body(result);
}else {
return ResponseEntity.ok(result);
}
}
@PutMapping("/{id}")
@ApiOperation(value = "按照id修改用户信息")
public ResponseEntity<User> update(@RequestBody User user){
User result = userService.update(user);
if (user.getId() == 0 || user.getId() == null){
return ResponseEntity.status(404).body(result);
}else {
return ResponseEntity.ok(result);
}
}
@DeleteMapping("/{id}")
@ApiOperation(value = "根据id删除用户")
public ResponseEntity<Integer> delete(@PathVariable Integer id){
userService.delete(id);
if (id == 0 || id == null){
return ResponseEntity.status(404).body(id);
}else {
return ResponseEntity.ok(id);
}
}
}
package com.jenkins.dao;
import com.jenkins.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface UserDao extends JpaRepository<User,Integer>, JpaSpecificationExecutor<User> {
}
package com.jenkins.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import javax.persistence.*;
@Accessors(chain = true)
@Setter
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "jpa")
@ApiModel(value = "用户登录信息")
public class User {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty(value = "用户Id")
private Integer id;
@Column(name = "username")
@ApiModelProperty(value = "用户名")
private String username;
@Column(name = "password")
@ApiModelProperty(value = "用户密码")
private String password;
}
package com.jenkins.service.Impl;
import com.jenkins.dao.UserDao;
import com.jenkins.entity.User;
import com.jenkins.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class UserServiceImpl implements UserService {
private final UserDao userDao;
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
@Override
public List<User> find() {
return userDao.findAll();
}
@Override
public Optional<User> findById(Integer id) {
return userDao.findById(id);
}
@Override
public User insert(User user) {
return userDao.save(user);
}
@Override
public void delete(Integer id) {
userDao.deleteById(id);
}
@Override
public User update(User user) {
return userDao.save(user);
}
}
package com.jenkins.service;
import com.jenkins.entity.User;
import java.util.List;
import java.util.Optional;
public interface UserService {
List<User> find();
Optional<User> findById(Integer id);
User insert(User user);
void delete(Integer id);
User update(User user);
}
server:
port: 8888
spring:
datasource:
url: jdbc:mysql://localhost:3306/jpa?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
jpa:
hibernate:
ddl-auto: update
show-sql: true
database: mysql
\ No newline at end of file
package com.jenkins.test;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class JenkinsRunAppTest {
@Test
void test(){
}
}
server:
port: 8888
spring:
datasource:
url: jdbc:mysql://localhost:3306/jpa?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
jpa:
hibernate:
ddl-auto: update
show-sql: true
database: mysql
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论