javascript
(二)SpringBoot 整合 JPA
一、JPA簡(jiǎn)介
JPA(java persistence api)并不是一個(gè)框架,而是一組規(guī)范。Hibernate、TopLink、OpenJPA都實(shí)現(xiàn)了JPA規(guī)范,不過Hinernate最成功)。所以當(dāng)說到JPA的時(shí)候,好多人首先想到的就是Hibernate。
二、SpringBoot 整合 JPA
1、創(chuàng)建工程并添加依賴
2、在application.yml文件中進(jìn)行配置
spring:devtools:restart:enabled: falsedatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/testhikari: # springboot 2.0 整合了hikari ,據(jù)說這是目前性能最好的java數(shù)據(jù)庫(kù)連接池username: rootpassword: 123jpa:hibernate:# 更新或創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu)ddl-auto: update # 第一次建表create 后面用update,要不然每次重啟都會(huì)新建表# 輸出執(zhí)行sqlshow-sql: true3、創(chuàng)建一個(gè)entity
package com.space.jpa.bean;import lombok.Data;import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id;/*** @author zhuzhe* @date 2018/6/3 23:27* @email 1529949535@qq.com*/ @Data @Entity // 該注解聲明一個(gè)實(shí)體類,與數(shù)據(jù)庫(kù)中的表對(duì)應(yīng) public class User {@Id // 表明id,聲明為該表主鍵@GeneratedValue // 自動(dòng)生成,主鍵自增策略private Long id ;private String name ;//getter & setter 方法略 }4、創(chuàng)建DAO
?編寫Dao接口來操作實(shí)體類對(duì)應(yīng)的數(shù)據(jù)表(Repository)來操作實(shí)體類對(duì)應(yīng)的數(shù)據(jù)表(Repository)
package com.space.jpa.dao;import com.space.jpa.bean.User; import org.springframework.data.jpa.repository.JpaRepository;/*** @author zhuzhe* @date 2018/6/3 23:32* @email 1529949535@qq.com*/ @Component //繼承JpaRepository來完成對(duì)數(shù)據(jù)庫(kù)的操作 public interface UserDAO extends JpaRepository<User,Long> {/** 我們?cè)谶@里直接繼承 JpaRepository* 這里面已經(jīng)有很多現(xiàn)場(chǎng)的方法了* 這也是JPA的一大優(yōu)點(diǎn)** */ }在這里我直接截圖,我們可以看看JpaRepository中的一些方法,可以直接使用這些方法,包括其父類的好多方法
5、Service
package com.space.jpa.service;import com.space.jpa.bean.User;import java.util.List; /*** @author zhuzhe* @date 2018/6/3 23:38* @email 1529949535@qq.com*/ public interface UserService {List<User> findAll(); } package com.space.jpa.service.impl;import com.space.jpa.bean.User; import com.space.jpa.dao.UserDAO; import com.space.jpa.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List;/*** @author zhuzhe* @date 2018/6/3 23:38* @email 1529949535@qq.com*/ @Service public class UserServiceImpl implements UserService {@Autowiredprivate UserDAO userDAO;@Overridepublic List<User> findAll() {// 這里我們就可以直接使用 findAll 方法return userDAO.findAll();} }6、Controller
package com.space.jpa.controller;import com.space.jpa.bean.User; import com.space.jpa.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author zhuzhe* @date 2018/6/3 23:43* @email 1529949535@qq.com*/ @RestController public class UserController {@Autowiredprivate UserService userService;@GetMapping("/list")public List<User> findAll() {return userService.findAll();} }7、進(jìn)行測(cè)試
我們啟動(dòng)項(xiàng)目,可以看到日志打印
數(shù)據(jù)表會(huì)自動(dòng)創(chuàng)建,此時(shí)我們查看數(shù)據(jù)庫(kù)
確實(shí)已經(jīng)自動(dòng)創(chuàng)建了數(shù)據(jù)表。
我們給表里添加兩條數(shù)據(jù),然后通過瀏覽器訪問findAll接口:
得到結(jié)果如下:
這樣,我們就整合完成了。是不是 So Easy!!!
源碼:https://github.com/zhuzhegithub/springboot-jpa
總結(jié)
以上是生活随笔為你收集整理的(二)SpringBoot 整合 JPA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (一)SpringBoot 整合 MyB
- 下一篇: gradle idea java ssm