閱讀142 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Spring Boot筆記——3

數據庫操作
Spring-Data-Jpa —— MySQL
JPA(Java Persistence API)定義了一係列對象持久化的標準,目前實現這一規範的產品有Hibernate、TopLink等。

RESTful API設計

GET         /list                    獲取女生列表

POST       /add                  創建一個女生

PUT         /update/{id}      更新

DELETE    /delete/{id}       刪除

————————————————————————

maven添加jpa、mysql組件

————————————————————————

mysql、jpa配置

jpa:

    ddl-auto: create/update...

—————————————————————————

@Entity @Id @GeneratedValue

package com.wuti;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * Created by wtrover on 2017/6/16.
 */
@Entity
public class Girl {

    @Id
    @GeneratedValue
    private Integer id;

    private String cupSize;

    private Integer age;

    public Girl() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getCupSize() {
        return cupSize;
    }

    public void setCupSize(String cupSize) {
        this.cupSize = cupSize;
    }
}

表:girl

—————————————————————————————————

@Repository

package com.wuti;

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

import java.util.List;

/**
 * Created by wtrover on 2017/6/16.
 */
@Repository
public interface GirlRepository extends JpaRepository<Girl,Integer> {

    //通過年齡查詢
    public List<Girl> findByAge(Integer age);
}

—————————————————————————————————

Controller

package com.wuti;

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

import java.util.List;

/**
 * Created by wtrover on 2017/6/16.
 */
@RestController
@RequestMapping(value = "/girl")
public class GirlController {

    @Autowired
    private GirlRepository girlRepository;

    @Autowired
    private GirlService     girlService;

    /**
     * 查詢所有女生列表
     * @return
     */
    @GetMapping(value = "/list")
    public List<Girl> girlList() {
        return girlRepository.findAll();
    }

    /**
     * 添加一個女生
     * @param cupSize
     * @param age
     * @return
     */
    @PostMapping(value = "/add")
    public Girl girlAdd(@RequestParam("cupSize") String cupSize,
                         @RequestParam(value = "age", required = false, defaultValue = "0") Integer age) {
        Girl girl = new Girl();
        girl.setCupSize(cupSize);
        girl.setAge(age);
        return girlRepository.save(girl);
    }

    //查詢一個女生
    @GetMapping(value = "/find/{id}")
    public Girl firlFindOne(@PathVariable("id") Integer id) {
        return  girlRepository.findOne(id);
    }

    //更新
    @PutMapping(value = "/update/{id}")
    public Girl girlUpdate(@PathVariable("id") Integer id,
                            @RequestParam("cupSize") String cupSize,
                            @RequestParam("age") Integer age) {
        Girl girl = new Girl();
        girl.setId(id);
        girl.setCupSize(cupSize);
        girl.setAge(age);

        return girlRepository.save(girl);
    }

    //刪除
    @DeleteMapping(value = "/delete/{id}")
    public void girlDelete(@PathVariable("id") Integer id) {
        girlRepository.delete(id);
    }

    //通過年齡查詢女生列表
    @GetMapping(value = "/age/{age}")
    public List<Girl> girlListByAge(@PathVariable("age") Integer age) {
        return girlRepository.findByAge(age);
    }

    //添加兩個女生
    @PostMapping(value = "/two")
    public void girlTwo() {
        girlService.insertTwo();
    }

}

——————————————————————————

事務管理

@Service @Autowired

@Transactional

package com.wuti;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * Created by wtrover on 2017/6/16.
 */
@Service
public class GirlService {

    @Autowired
    private GirlRepository girlRepository;

    @Transactional
    public void insertTwo() {
        Girl girlA = new Girl();
        girlA.setCupSize("A");
        girlA.setAge(18);
        girlRepository.save(girlA);
        Girl girlB = new Girl();
        girlB.setCupSize("B");
        girlB.setAge(19);
        girlRepository.save(girlB);
    };
}






最後更新:2017-06-22 22:34:29

  上一篇:go  阿裏雲ECS發送郵件出現異常問題
  下一篇:go  ionic自定義component