springBoot+JpaRepository配置數據庫踩坑

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)註解,如果沒加,執行數據庫保存操作時會出現主鍵丟失的錯誤.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章