1. 程式人生 > >springBoot+Jap配置資料庫踩坑

springBoot+Jap配置資料庫踩坑

springboot+Jpa配置資料庫遇到的問題

  • application.yml或者application.properties檔案配置 我是使用的mysql5.x.x的版本,所以在首次配置Jpa的時候最好加上下面這些內容
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: 
    username:
    password: 

  jpa:
    database-platform: org.hibernate.dialect.MySQL5Dialect
    show-sql: 

url 這一項請加上?characterEncoding=utf-8&useSSL=false 不加會出現警告 報錯 因為我已經配置過了,idea好像記住了我的配置,我註釋掉driver-class-name 和database-platform也沒有報錯,所以這裡沒辦法給出報錯截圖,不過一般是一個“entityManagerxxxxx”的錯誤,報這個錯還有其他原因,我接下來講。

  • @Entity註解 這個註解的功能是宣告某個類是一個實體類,與資料庫裡的某個表進行對映。 既然是對映的話,那麼你實體類裡的變數名就必須與資料庫裡的欄位對應起來。 實體類

資料庫欄位 這裡有一個對應規則,實體類裡的變數名裡的大些字母在資料庫欄位裡對應下劃線_ 加與之對應的小寫字母,例如:tableId就對應於table_id 首字母大寫的將直接轉換為對應的小寫字母

@Entity註解中可以加屬性,如@Entity(name=“lost_found”)表示,該實體類對應資料庫中的lost_found表,如果沒有寫name這個屬性,那麼@Entity將預設實體類的類名為表名,對應規則和上面相同。即:如果我沒有加那麼屬性,那麼class FoundItem對應表"found_item". 這裡有個坑,我踩了很多次. 如果你事先沒有建立實體類對應的表,springboot框架有時會幫你建立,但是最後別指望這個功能,因為大部分情況下如果沒有對應的表,程式會報錯 報錯 有時也會報"entityManager"的錯誤.

  • @Id註釋,宣告表的主鍵 這裡有一個@GeneratedValue註解,如果表的主鍵是自增型別,需要加上@GeneratedValue(strategy = GenerationType.IDENTITY)註解,如果沒加,執行資料庫儲存操作時會出現主鍵丟失的錯誤.