Spring Boot+JPA+Mysql-简单查询--增删改查
发布日期:2021-06-28 20:53:56 浏览次数:2 分类:技术文章

本文共 4288 字,大约阅读时间需要 14 分钟。

 

java web开发一般包括web层(controller,控制数据的接受请求和返回响应),service层(业务逻辑层),数据库操作层.

JavaWeb经典三层框架

    我们常说的三层框架是由JavaWeb提出的,也就是说这是JavaWeb独有的!
    所谓三层是表述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。
        * WEB层:包含JSP和Servlet等与WEB相关的内容;
        * 业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;
        * 数据层:封装了对数据库的访问细节,该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
    Web层依赖业务层,业务层依赖数据层,数据层操作数据!
    注意:
        在业务层中不能出现JavaWeb API,例如request、response等。也就是说,业务层代码是可重用的,
    甚至可以应用到非Web环境中。业务层的每个方法可以理解成一个万能,例如转账业务方法。

注解:

@Service用于标注业务层组件,@Controller用于标注控制层组件(如struts中的action),@Repository用于标注数据访问组件,即DAO组件,而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。  

1.完成实体对象(Book)的配置

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;@Entitypublic 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
{}

3.定业务层(Service)

为了让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;@Servicepublic class BookService {    @Autowired    //@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,    // 完成自动装配的工作。    // 通过 @Autowired的使用来消除 set ,get方法。    private BookRepository bookRepository;    /**     * 查询所有的书单列表     * @return     */    public List
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

转载地址:https://blog.csdn.net/yangshengwei230612/article/details/103732393 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:OpenCV4.2 版本 DNN模块使用CUDA加速教程 VS2017 Window10
下一篇:SpringData+JPA+mysql 8, cannot be null when 'hibernate.dialect' not set

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月06日 17时41分37秒