(ps:將數(shù)據(jù)庫內(nèi)容返回到web頁面)
1.pom.xml
<!-- Web 依賴 -->
org.springframework.boot
spring-boot-starter-web
<!-- 模板引擎 Thymeleaf 依賴 -->
org.springframework.boot
spring-boot-starter-thymeleaf
<!-- mysql驅(qū)動 依賴 -->
mysql
mysql-connector-java
<!-- spring-data-jpa 依賴 -->
org.springframework.boot
spring-boot-starter-data-jpa
<!-- lombok 依賴 -->
org.projectlombok
lombok
2.application.properties
############################
###數(shù)據(jù)庫配置信息
############################
##基礎(chǔ)信息
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
##連接池中最大的活躍連接數(shù)
spring.datasource.tomcat.max-active=20
##連接池中最大、最小的空閑連接數(shù)
spring.datasoure.max-idle=8
spring.datasoure.min-idle=8
##初始化連接數(shù)
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;
/**
* 創(chuàng)建Student持久化類
* 1.使用@Entity注解實現(xiàn)實體類的持久化导而,JPA檢測到之后隔崎,可以在數(shù)據(jù)庫中生成對應(yīng)的表
* 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 數(shù)據(jù)持久層操作接口
*/
public interface BookRepository extends JpaRepository<Book, Long> {
}
5.service及實現(xiàn)
package com.example.springdatajpa.service;
import com.example.springdatajpa.entity.Book;
importjava.util.List;
/**
* Book 業(yè)務(wù)接口層
*/
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 業(yè)務(wù)層實現(xiàn)
*/
@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 列表
? ? * 數(shù)據(jù)存入ModelMap实牡,返回Thymeleaf頁面
? ? */
@GetMapping("/all")
publicString getBookList(ModelMap map) {
map.addAttribute("bookList", bookService.findAll());
returnBOOK_LIST_PATH_NAME;
? ? }
/**
? ? * 獲取 Book
? ? * 處理 "/book/{id}" 的 GET 請求
? ? * 返回單個數(shù)據(jù)的模板頁面
? ? */
@GetMapping(value = "/{id}")
publicString getBook(@PathVariableLongid, ModelMap map) {
map.addAttribute("book", bookService.findById(id));
returnBOOK_DETAIL_PATH_NAME;
? ? }
}
7.bookList.html頁面寫法
書籍列表
Spring Data JPA練習(xí)
書籍列表
書籍編號
書名
作者
簡介
8.bookDetail.html頁面寫法
書籍詳情
Spring Data JPA練習(xí)
書籍詳情
9.運行效果