美文网首页
Spring Data JPA综合练习

Spring Data JPA综合练习

作者: 逍遥_6b76 | 来源:发表于2018-09-20 19:46 被阅读0次

    (ps:将数据库内容返回到web页面)

    1.pom.xml

    <!-- Web 依赖 -->

    org.springframework.boot

    spring-boot-starter-web

    <!-- 模板引擎 Thymeleaf 依赖 -->

    org.springframework.boot

    spring-boot-starter-thymeleaf

    <!-- mysql驱动 依赖 -->

    mysql

    mysql-connector-java

    <!-- spring-data-jpa 依赖 -->

    org.springframework.boot

    spring-boot-starter-data-jpa

    <!-- lombok 依赖 -->

    org.projectlombok

    lombok

    2.application.properties

    ############################

    ###数据库配置信息

    ############################

    ##基础信息

    spring.datasource.url=jdbc:mysql://localhost:3306/springboot_test?useUnicode=true&characterEncoding=utf-8

    spring.datasource.username=root

    spring.datasource.password=root

    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    ##连接池中最大的活跃连接数

    spring.datasource.tomcat.max-active=20

    ##连接池中最大、最小的空闲连接数

    spring.datasoure.max-idle=8

    spring.datasoure.min-idle=8

    ##初始化连接数

    spring.datasoure.initial=10

    ############################

    ###Spring Data JPA配置信息

    ############################

    spring.jpa.database=mysql

    # 显示SQL语句

    spring.jpa.show-sql=true

    ##指定DDL mode (none, validate, update, create, create-drop)

    spring.jpa.properties.hibernate.hbm2ddl.auto=update

    spring.thymeleaf.cache=false

    3.entity

    packagecom.example.springdatajpa.entity;

    importlombok.Data;

    importjavax.persistence.Entity;

    importjavax.persistence.GeneratedValue;

    importjavax.persistence.Id;

    importjava.io.Serializable;

    /**

    * 创建Student持久化类

    * 1.使用@Entity注解实现实体类的持久化,JPA检测到之后,可以在数据库中生成对应的表

    * 2.使用@Id指定主键

    * 3.使用@GeneratedValue指定主键策略,mysql默认自增

    * 4.使用@Data简化get/set

    */

    @Entity

    @Data

    publicclassBookimplementsSerializable{

    @Id

    @GeneratedValue

    privateLong id;//编号

    privateString name;//书名

    privateString writer;//作者

    privateString introduction;//简介

    }

    4.dao

    package com.example.springdatajpa.dao;

    import com.example.springdatajpa.entity.Book;

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

    /**

    * Book 数据持久层操作接口

    */

    public interface BookRepository extends JpaRepository<Book, Long> {

    }

    5.service及实现

    package com.example.springdatajpa.service;

    import com.example.springdatajpa.entity.Book;

    importjava.util.List;

    /**

    * Book 业务接口层

    */

    public interfaceBookService {

    /**

        * 获取所有 Book

        */

    List

    /**

        * 获取 Book

        *

        * @param id 编号

        */

    Book findById(Long id);

    }

    package com.example.springdatajpa.service.impl;

    import com.example.springdatajpa.dao.BookRepository;

    import com.example.springdatajpa.entity.Book;

    import com.example.springdatajpa.service.BookService;

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Service;

    import java.util.List;

    /**

    * Book 业务层实现

    */

    @Service

    public class BookServiceImpl implements BookService {

    @Autowired

        BookRepository bookRepository;

    @Override

        public List<Book> findAll() {

            return bookRepository.findAll();

        }

    @Override

        public Book findById(Long id) {

            return bookRepository.findById(id).get();

        }

    }

    6.controller

    packagecom.example.springdatajpa.controller;

    importcom.example.springdatajpa.entity.Book;

    importcom.example.springdatajpa.service.BookService;

    importorg.springframework.stereotype.Controller;

    importorg.springframework.ui.ModelMap;

    importorg.springframework.web.bind.annotation.*;

    importjavax.annotation.Resource;

    /**

    * Book 控制层

    */

    @Controller

    @RequestMapping(value = "/book")

    publicclassBookController{

    privatestaticfinalString BOOK_DETAIL_PATH_NAME ="bookDetail";

    privatestaticfinalString BOOK_LIST_PATH_NAME ="bookList";

    @Resource

        BookService bookService;

    /**

        * 获取 Book 列表

        * 处理 "/book/all" 的 GET 请求,用来获取 Book 列表

        * 数据存入ModelMap,返回Thymeleaf页面

        */

    @GetMapping("/all")

    publicString getBookList(ModelMap map) {

    map.addAttribute("bookList", bookService.findAll());

    returnBOOK_LIST_PATH_NAME;

        }

    /**

        * 获取 Book

        * 处理 "/book/{id}" 的 GET 请求

        * 返回单个数据的模板页面

        */

    @GetMapping(value = "/{id}")

    publicString getBook(@PathVariableLongid, ModelMap map) {

    map.addAttribute("book", bookService.findById(id));

    returnBOOK_DETAIL_PATH_NAME;

        }

    }

    7.bookList.html页面写法

    书籍列表

    Spring Data JPA练习

    书籍列表

    书籍编号

    书名

    作者

    简介

    8.bookDetail.html页面写法

    书籍详情

    Spring Data JPA练习

    书籍详情

    9.运行效果

    相关文章

      网友评论

          本文标题:Spring Data JPA综合练习

          本文链接:https://www.haomeiwen.com/subject/tygnnftx.html