栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

Springboot---REST风格、JPA实现GETPOSTPUT

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot---REST风格、JPA实现GETPOSTPUT


pom.xml

  • 仅写需要的依赖

		
			org.springframework.boot
			spring-boot-starter-web
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			mysql
			mysql-connector-java
		
		
			org.springframework.boot
			spring-boot-starter-data-jpa
		
		 
  org.eclipse.persistence
  javax.persistence
  2.1.0
     
	


LuckmoneyController.java

  • 使用postman类似软件发出URL请求
  • 控制器接受URL请求
  • 根据发送URL方式实现不同的操作请求
package ink.xlr.controller;

import ink.xlr.domain.Luckymoney;
import ink.xlr.repository.LuckmoneyRepository;
import ink.xlr.service.LuckmoneyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.util.List;
import java.util.Optional;


@RestController
public class LuckymoneyController {

    @Autowired
    private LuckmoneyRepository repository;

    
    @GetMapping("/luckymoneys")
    public List list() {
 return repository.findAll();
    }

    
    @PostMapping("/luckymoneys")
    public Luckymoney create(@RequestParam("producer")String producer,
 @RequestParam("money")BigDecimal money) {
 Luckymoney luckymoney = new Luckymoney();
 luckymoney.setProducer(producer);
 luckymoney.setMoney(money);
 return repository.save(luckymoney);
    }

    
    @GetMapping("/luckymoneys/{id}")
    public Luckymoney findById(@PathVariable("id")Integer id) {
 return repository.findById(id).orElse(null);
    }

    
    @PutMapping("/luckymoneys/{id}")
    public Luckymoney update(@PathVariable("id")Integer id,
 @RequestParam("consumer")String consumer) {
 Optional optional = repository.findById(id);
 if (optional.isPresent()){
     Luckymoney luckymoney = optional.get();
     luckymoney.setId(id);
     luckymoney.setConsumer(consumer);
     return repository.save(luckymoney);
 }
 return null;
    }

}

  • @RestController = @ResponseBody(返回结果解析为JSON) + @Controller(声明为控制器)
  • @Autowired依赖注入(只根据类型),@Resource(默认根据名称)
  • @GetMapping("/luckymoneys")接受Get方式发送的URL请求,作为REST中查询方式
  • @PostMapping("/luckymoneys")接受Post方式发送的URL请求,作为REST中的创建方式
  • @PutMapping("/luckymoneys/{id}")接受Put方式发送的URL请求,作为REST中的部分更新方式
  • @RequestParam获取请求体中的参数
  • @PathVariable获取请求路径中的参数

Luckmoney.java

package ink.xlr.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.math.BigDecimal;


@Entity
public class Luckymoney {

    @Id
    @GeneratedValue
    private Integer id;

    private BigDecimal money;

    
    private String producer;

    
    private String consumer;

    public Luckymoney() {
    }

    public Integer getId() {
 return id;
    }
    // getter、setter、toString
}
  • @Entity表明该类(Luckmoney)为实体类,对应数据库表名为luckmoney
  • @Id表明属性为主键
  • @GeneratedValue提供主键生成策略

application.yml或application.properties


spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/luckymoney?serverTimezone=Asia/Shanghai&allowMultiQueries=true
    username: root
    password: 123456789
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

  • spring.jpa.hibernate.ddl-auto:update ->每次运行程序,没有表格会新建表格,表内若有数据,只更新
  • spring.jpa.show-sql->显示每次执行的sql语句(便于出现错误查看SQL语句)

LuckmoneyRepository.java


package ink.xlr.repository;

import ink.xlr.domain.Luckymoney;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;


@Repository
public interface LuckmoneyRepository extends JpaRepository {
}
  • JpaRepository基于JPA的Respository接口,极大减少JPA作为数据访问的代码
  • @Repository声明该类为数据访问组件

DemoApplication.java

package ink.xlr;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号