数据库操作(下)

创建一个GirlRepository的interface继承JpaRepository,第一个参数类型是对应的Entity类,第二个参数是Entity类对应的数据库表中的主键类型。

import org.springframework.data.jpa.repository.JpaRepository;

public interface GirlRepository extends JpaRepository {
}

然后创建一个GirlController类,来响应HTTP请求

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class GirlController {

    @Autowired
    private GirlRepository girlRepository;

    // find all records
    @GetMapping(value = "/girls")
    public List getGirlList() {
        return girlRepository.findAll();
    }

    // create a new record by providing its cup size and age
    @PostMapping(value = "/girl")
    public Girl addGirl(@RequestParam("cupSize") String cupSize,
                        @RequestParam("age") Integer age) {
        Girl girl = new Girl();
        girl.setAge(age);
        girl.setCupSize(cupSize);

        return girlRepository.save(girl);
    }

    // find a record by its id
    @GetMapping(value = "/girl/{id}")
    public Girl getGirl(@PathVariable("id") Integer id) {
        return girlRepository.findOne(id);
    }

    // update a record by providing its id, new cup size, and new age
    @PutMapping(value = "/girl/{id}")
    public Girl updateGirlInfo(@PathVariable("id") Integer id,
                               @RequestParam("cupSize") String cupSize,
                               @RequestParam("age") Integer age) {
        Girl girl = girlRepository.findOne(id);
        girl.setCupSize(cupSize);
        girl.setAge(age);

        return girlRepository.save(girl);
    }

    // delete a record by providing its id
    @DeleteMapping(value = "/girl/{id}")
    public void deleteGirl(@PathVariable("id") Integer id) {
        girlRepository.delete(id);
    }
}

我们也能customize从数据库搜索record的条件,比如我们想要通过提供女孩的年龄,返回所有该年龄的女孩。
首先在GirlRepositoryinterface里写一个customized的方法

import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface GirlRepository extends JpaRepository {

    List findByAge(Integer age);
}

然后我们就可以在Controller里通过使用这个方法来所搜想要获得的数据

    @GetMapping(value = "/girls/age/{age}")
    public List findGirlsByAge(@PathVariable("age") Integer age) {
        return girlRepository.findByAge(age);
    }

你可能感兴趣的:(数据库操作(下))