春ブーツ+ JPA +はmysql-の簡単なクエリ - CRUD

 

JavaのWeb開発は、一般的にウェブ層(コントローラが要求を受け入れ、応答を返す、制御データ)、レイヤサービス(ビジネスロジック)、データベース操作層を含みます。

JavaWeb古典的な3層フレームワーク
    私たちはしばしば、それがJavaWebユニークであると言うことですJavaWebが提案した3層のフレームワーク、と言います!
    いわゆる三層は、プレゼンテーション層(WEB層)、ビジネスロジック(ビジネスロジック)、およびデータアクセス層(データアクセス)です。
        * WEB層:サーブレット、JSPを備えるなどWEBコンテンツに関連する;
        *ビジネス層:ビジネス層は、JavaWebのAPIが含まれていない、それが唯一のビジネスロジックに関係している;
        *データ層:作られたトランザクション層の細部のデータベースへのパッケージアクセス追加されたデータ、削除、変更、更新のためのデータベースの直接操作、検索、その他。
    Webサービス層依存層、ビジネス層に依存するデータ層、データ層操作データ!
    注:
        サービス層、例えば要求、応答などでJavaWebのAPIを表示されません。言い換えれば、ビジネス層のコードは、再利用可能である
    にも非Web環境に適用することができます。各サービス層の方法は、ユニバーサル、例えば、転写ビジネスメソッドとして理解することができます。

注意:

注釈データ・アクセス・コンポーネントのリポジトリ@、(例えば、アクションストラット)アセンブリ注釈層を制御するためのコントローラ@ビジネス層コンポーネントの@Serviceラベル、すなわちDAOコンポーネント、アセンブリが良いリターンでない場合、アセンブリ@Componentを指しクラスは、我々は、マークに、このアノテーションを使用することができます。  

1.完全なエンティティオブジェクト(書籍)の設定

package com.lrm.domain;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

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


@Entity
public class Book {


    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    private String name;

    private String author;

    private int status;

    private String description;

    public Book() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public long getId() {
        return id;
    }

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

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

 

2.コンフィギュレーションデータ層の動作

インタフェースを作成する、JpaRepository継承インターフェイスは、データ操作の後に提供されてもよいJPA

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


public interface BookRepository extends JpaRepository<Book,Long> {
}

3.固定ビジネス層(サービス)

为了让controller可以注入BookService使用注解@Service

import com.lrm.domain.Book;
import com.lrm.domain.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public class BookService {

    @Autowired
    //@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,
    // 完成自动装配的工作。
    // 通过 @Autowired的使用来消除 set ,get方法。
    private BookRepository bookRepository;


    /**
     * 查询所有的书单列表
     * @return
     */
    public List<Book> findAll() {
        return bookRepository.findAll();
    }

    /**
     * 提交一个书单信息
     * @param book
     * @return
     */
    public Book save(Book book) {
        return bookRepository.save(book);
    }

    /**
     * 获取一条书单信息
     * @param id
     * @return
     */
    public Book findOne(Long id) {
        //return bookRepository.findOne(id);//2.0.0.以上版本
        return bookRepository.findById(id).get();//2.0.0.以下版本
    }
    /**
     * 删除一条书单信息
     * @param id
     */
    public void delete(long id) {
        bookRepository.deleteById(id) ;//2.0.0.以上版本
        //   bookRepository.delete(id);//2.0.0.以下版本
    }
}

4.web层(controller,控制数据的接受请求和返回响应)

读取数据

添加数据

更新数据

以下两种方法都可以:

方法一:

    /**
     * 更新一个书单
     * @param id
     * @param name
     * @param author
     * @param description
     * @param status
     * @return
     */
    @PutMapping("/books")
    public Book update(@RequestParam long id,
                       @RequestParam String name,
                       @RequestParam String author,
                       @RequestParam String description,
                       @RequestParam int status) {
        Book book = new Book();
        book.setId(id);
        book.setName(name);
        book.setAuthor(author);
        book.setDescription(description);
        book.setStatus(status);

        return bookService.save(book);
    }

方法二:

    /**
     * 更新一个书单
     * @param id
     * @param name
     * @param author
     * @param description
     * @param status
     * @return
     */


    @PutMapping("/books")
    public Book update(Book book) {

        return bookService.save(book);
    }

删除数据

    /**
     * 删除一个书单
     * @param id
     */
    @DeleteMapping("/books/{id}")
    public void deleteOne(@PathVariable long id) {

        bookService.delete(id);
    }

源码链接:

链接:https://pan.baidu.com/s/15O5ZefBWxP-RWyZwtOXtmA 
提取码:pbt4

发布了153 篇原创文章 · 获赞 6 · 访问量 2361

おすすめ

転載: blog.csdn.net/yangshengwei230612/article/details/103732393