Springboot使用JPA對postgreSQL實現CRUD


 

先讓大家看一下項目的結構

 

1、創建一個springboot的項目

選擇Web、JPA、PostgreSQL

 

2、pom中導入maven依賴

1 <dependency>
2         <groupId>org.springframework.boot</groupId>
3         <artifactId>spring-boot-starter-freemarker</artifactId>
4 </dependency>

描述:對FreeMarker模板引擎的支持

FreeMarker模板引擎優點:

1.freemark不支持寫java代碼,實現嚴格的mvc分離

2.性能非常不錯

3.對jsp標簽支持良好 

4.內置大量常用功能,使用非常方便

5.宏定義(類似jsp標簽)非常方便

6.使用表達式語言

  在springboot的官方文檔中是不建議在項目中使用jsp這樣的技術的,取而代之的是freemark、velocity這樣的模板引擎。

   首先和大家來說一下這個模板引擎的概念,模板引擎是為了使用戶界面業務數據(內容)分離而產生的,它可以生成特定格式的文檔,用於網站的模板引擎就會生成一個標准的HTML文檔。

 

3、在application中寫入配置文件

1 #數據庫
2 spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/postgres
3 spring.datasource.username=postgres
4 spring.datasource.password=123456
5 spring.datasource.driverClassName=org.postgresql.Driver
6 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
7 spring.jpa.properties.hibernate.hbm2ddl.auto=update
8 spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false  
9 spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL9Dialect

  寫入完成后,org.postgresql.Driver會報錯(可以不管)。原因是postgresql這個jar包依賴類型默認是runtime(運行時生效),所以並不影響代碼的運行。

修改方法:

  右鍵點擊項目——選擇“open module settings”——點擊“Dependencies”,找到Maven:org.postgresql:postgresql:42.2.5將runtime修改為Compile

4、創建一個實體類

這個實體類用來創建一個tableOne表

 1 package com.example.demo.entity;
 2 
 3 import javax.persistence.Entity;
 4 import javax.persistence.GeneratedValue;
 5 import javax.persistence.Id;
 6 
 7 @Entity
 8 public class tableOne {
 9 
10     @Id
11     @GeneratedValue
12     private int ID;
13     private String UserName;
14     private String PassWord;
15 
16     public int getID() {
17         return ID;
18     }
19 
20     public void setID(int ID) {
21         this.ID = ID;
22     }
23 
24     public String getUserName() {
25         return UserName;
26     }
27 
28     public void setUserName(String userName) {
29         UserName = userName;
30     }
31 
32     public String getPassWord() {
33         return PassWord;
34     }
35 
36     public void setPassWord(String passWord) {
37         PassWord = passWord;
38     }
39 }

5、創建一個CRUD實體類

對創建的數據庫表tableOne進行操作

 1 package com.example.demo.entity;
 2 
 3 import javax.persistence.Entity;
 4 import javax.persistence.GeneratedValue;
 5 import javax.persistence.Id;
 6 import javax.persistence.Table;
 7 
 8 @Entity
 9 @Table(name = "tableOne")
10 public class UserEntity {
11 
12     @Id
13     @GeneratedValue
14     private Long ID;
15     private String UserName;
16     private String PassWord;
17 
18     public Long getID() {
19         return ID;
20     }
21 
22     public void setID(Long ID) {
23         this.ID = ID;
24     }
25 
26     public String getUserName() {
27         return UserName;
28     }
29 
30     public void setUserName(String userName) {
31         UserName = userName;
32     }
33 
34     public String getPassWord() {
35         return PassWord;
36     }
37 
38     public void setPassWord(String passWord) {
39         PassWord = passWord;
40     }
41 }

6、創建JPA

實體類創建完成,使用springDataJPA來完成數據庫的操作。

創建UserJPA接口並且繼承SpringDataJPA內的接口作為父類

1 package com.example.demo.JPA;
2 
3 import com.example.demo.entity.UserEntity;
4 import org.springframework.data.jpa.repository.JpaRepository;
5 
6 public interface UserJpa extends JpaRepository<UserEntity,Long> {}

7、編寫CRUD方法

新建UserController類,用於請求轉發

 1 package com.example.demo.controller;
 2 
 3 import com.example.demo.JPA.UserJpa;
 4 import com.example.demo.entity.UserEntity;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.bind.annotation.RestController;
 8 
 9 import java.util.List;
10 
11 @RestController
12 @RequestMapping("/user")
13 public class UserController {
14 
15     @Autowired
16     private UserJpa userJpa;
17     //查找
18     @RequestMapping("/list")
19     public List<UserEntity> list(){
20         return userJpa.findAll();
21     }
22 
23     //添加
24     @RequestMapping("/save")
25     public UserEntity save(UserEntity entity){
26         return userJpa.save(entity);
27     }
28 
29     //刪除     - - 根據ID刪除
30     @RequestMapping("/delete")
31     public  List<UserEntity> delete(Long ID){
32         userJpa.deleteById(ID);
33         return userJpa.findAll();
34     }
35 
36     //修改     - - 根據ID修改
37     @RequestMapping("/update")
38     public  List<UserEntity> update(UserEntity userEntity) {
39         userJpa.save(userEntity);
40         return userJpa.findAll();
41     }
42 }

8、啟動項目

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM