菜鸟上路 Spring Boot+Spring data jpa+swagger 做的增 删 改 查

1 .数据库用的是mysql 数据库,项目整体结构如下,项目中Hystrix和Eureka可以看看,新手不晓得怎么上传项目文件 研究下后续给补上

2.用的maven 这里贴出maven 的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 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>southernfund</groupId>  
  <artifactId>ws</artifactId>  
  <version>1.1</version>  
  <packaging>jar</packaging>  
  <parent> 
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-parent</artifactId>  
    <version>1.3.5.RELEASE</version>  
    <relativePath/> 
  </parent>  
  <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    <java.version>1.8</java.version> 
  </properties>  
  <dependencies> 
    <dependency> 
      <groupId>biz.paluch.logging</groupId>  
      <artifactId>logstash-gelf</artifactId>  
      <version>1.11.0</version> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-starter-mail</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>com.h2database</groupId>  
      <artifactId>h2</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>junit</groupId>  
      <artifactId>junit</artifactId>  
      <version>3.8.1</version>  
      <scope>test</scope> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-starter-web</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>io.springfox</groupId>  
      <artifactId>springfox-swagger2</artifactId>  
      <version>2.4.0</version> 
    </dependency>  
    <dependency> 
      <groupId>io.springfox</groupId>  
      <artifactId>springfox-swagger-ui</artifactId>  
      <version>2.4.0</version> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.cloud</groupId>  
      <artifactId>spring-cloud-starter-eureka</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.cloud</groupId>  
      <artifactId>spring-cloud-starter-eureka-server</artifactId>  
      <scope>test</scope> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-starter</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency>  
    <!--hystrix -->  
    <dependency> 
      <groupId>org.springframework.cloud</groupId>  
      <artifactId>spring-cloud-starter-hystrix</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> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.cloud</groupId>  
      <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.crazycake</groupId>  
      <artifactId>jdbctemplatetool</artifactId>  
      <version>1.0.4-RELEASE</version> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-starter-jdbc</artifactId> 
    </dependency> 
  </dependencies>  
  <dependencyManagement> 
    <dependencies> 
      <dependency> 
        <groupId>org.springframework.cloud</groupId>  
        <artifactId>spring-cloud-dependencies</artifactId>  
        <version>Brixton.SR5</version>  
        <type>pom</type>  
        <scope>import</scope> 
      </dependency>  
      <dependency> 
        <groupId>org.springframework.cloud</groupId>  
        <artifactId>spring-cloud-netflix</artifactId>  
        <version>1.1.6.RELEASE</version>  
        <type>pom</type>  
        <scope>import</scope> 
      </dependency> 
    </dependencies> 
  </dependencyManagement>  
  <build> 
    <plugins> 
      <plugin> 
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-maven-plugin</artifactId>  
        <configuration> 
          <mainClass>com.nf.Application</mainClass> 
        </configuration>  
        <executions> 
          <execution> 
            <goals> 
              <goal>repackage</goal> 
            </goals> 
          </execution> 
        </executions> 
      </plugin> 
    </plugins> 
  </build> 
</project>


3.Controller ( ApiOperation 注解是 swagger 的注解更多注解请自行查询)

@RestController
@RequestMapping("/user")
public class UserController {

Logger logger= Logger.getLogger(UserController.class);

@Autowired
private Userepository userepository;

/**
* 查询所有列表
* @return
*/
@RequestMapping(value="/UserList",method=RequestMethod.GET)
@ApiOperation(value="获取所有的列表",notes="不需要传递参数")
public List<Users> UserList(){
logger.info("userList");
return userepository.findAll();
}


/**
* 增加一个用户数据
* @param users
* @param bindingResult
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping(value="/SaveUser",method=RequestMethod.POST)
@ApiOperation(value="添加一个用户",notes="标题")
@Transactional
public com.nf.entity.Result<Users> SaveUser(@Valid Users users,BindingResult bindingResult){
logger.info("SaveUser");
if(bindingResult.hasErrors()){
return ResultUtil.error(1, bindingResult.getFieldError().getDefaultMessage());
}
return ResultUtil.success(userepository.save(users));
}

/**
* 
* 更新
* @param users
* @param bindingResult
* @return
*/
@RequestMapping(value="/userUpdate",method=RequestMethod.POST)
@ApiOperation(value="更新用户信息",notes="更新")
public Users UsersUpdate(@Valid Users users,BindingResult bindingResult){
logger.info("userUpdate----");
if(bindingResult.hasErrors()){
return users;
}
return userepository.save(users);
}


/**
* 删除用户信息
* @param id
* no Result
*/
@RequestMapping(value="/delteUser/{id}",method=RequestMethod.DELETE)
@ApiOperation(value="删除用户信息",notes="Delete")
public void UserDelete(@PathVariable("id") final Integer id) {
userepository.delete(id);
}

@ApiOperation(value="根据姓名查找!",notes="就是查询姓名!",code=1,produces="2")
@RequestMapping(value="/findByname/{name}",method=RequestMethod.GET)
public List<Users> findByName(@PathVariable("name") final String name){
return userepository.findByAddressLike(name);
}
     
}



4.实体类

@Entity
public class Users {
@Id
@GeneratedValue
private Integer id;
private String name;
@NotBlank(message="性别必填")
private String sex;
@NotBlank(message="地址必填")
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Users [id=" + id + ", name=" + name + ", sex=" + sex + ", address=" + address + "]";
}
public Users(Integer id ,String sex,String name,String address){
this.id=id;
this.sex= sex;
this.name=name;
this.address=address;
}
public Users(){}

}


5.repository 类

public interface Userepository extends JpaRepository<Users,Integer> {
public List<Users> findByAddressLike(final String name);
}


6.util result 以及 resultUtil

public class ResultUtil {
public static Result success(Object object) {
       Result result = new Result();
       result.setCode(0);
       result.setMsg("成功");
       result.setData(object);
       return result;
   }


   public static Result success() {
       return success(null);
   }


   public static Result error(Integer code, String msg) {
       Result result = new Result();
       result.setCode(code);
       result.setMsg(msg);
       return result;
   }
}


Result 错误类

public class Result<T> {
/** 错误码. */
    private Integer code;


    /** 提示信息. */
    private String msg;


    /** 具体的内容. */
    private T data;


    public Integer getCode() {
        return code;
    }


    public void setCode(Integer code) {
        this.code = code;
    }


    public String getMsg() {
        return msg;
    }


    public void setMsg(String msg) {
        this.msg = msg;
    }


    public T getData() {
        return data;
    }


    public void setData(T data) {
        this.data = data;
    }
}


7.启动类


@EnableEurekaServer //服务发现
@EnableEurekaClient	
@EnableHystrixDashboard //熔断器
@SpringBootApplication
public class Application {


public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}



8. swagger配置类 好用的api工具

@Configuration
@EnableSwagger2
public class Swagger2 {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                //.pathMapping("/it/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.nf.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("做的一个用户CRDU的api。 - RESTful API Docs")
                .description("正在开发中...")
                .termsOfServiceUrl("http://localhost:8080/")
                .version("1.0")
                .build();
    }



。最后是数据库配置文件 yml 格式的

spring:
  profiles: ## 可以删除
    active: dev  ##可以删除
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/user
    username: root
    password: 123456
  jpa:
    hibernate:
      ddl-auto: update ## 有多个参数 可自行调试:create ,create-update,none
    show-sql: true


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值