先讓大家看一下項目的結構
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、啟動項目