springboot根據(jù)實(shí)體類(lèi)生成表的實(shí)現(xiàn)方法
JPA:springboot -jpa:數(shù)據(jù)庫(kù)的一系列的定義數(shù)據(jù)持久化的標(biāo)準(zhǔn)的體系
學(xué)習(xí)的目的是:
利用springboot實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作
第一步:添加springboot-data-jpa和數(shù)據(jù)庫(kù)的依賴(lài)關(guān)系
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
第二步:編寫(xiě)yml文件的配置;
server: port: 8001 spring: application: name: jih-manage datasource: name: test url: jdbc:mysql://111.231.231.56/jih username: root password: root type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true
第三步:實(shí)體類(lèi)中使用的注解:
@Entity 實(shí)體類(lèi)的注解 @Id 映射到表格中id的屬性 @Gernertervalue 添加其自增的屬性;
第四步:?jiǎn)?dòng)項(xiàng)目是否生成表格
補(bǔ)充的知識(shí)點(diǎn):
根據(jù)實(shí)體類(lèi)生成數(shù)據(jù)庫(kù)的表配置文件有倆種方式分別是yml和properties文件進(jìn)行配置
yml文件:
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/facemap username: root password: root jpa: hibernate: ddl-auto: update show-sql: true
properties文件的寫(xiě)法:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/dbgirl?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root spring.jpa.show-sql= true spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jackson.serialization.indent_output=false
有更加詳細(xì)介紹
首先我是通過(guò)maven創(chuàng)建了一個(gè)spring boot的工程,引入了Spring data jpa,結(jié)果實(shí)體類(lèi)創(chuàng)建好之后,運(yùn)行工程卻沒(méi)有在數(shù)據(jù)庫(kù)中自動(dòng)創(chuàng)建數(shù)據(jù)表。
找了半天發(fā)現(xiàn)是一個(gè)配置的問(wèn)題:
hibernate.ddl-auto節(jié)點(diǎn)的配置,這個(gè)配置有兩種方式去配置,我使用的是通過(guò)properties文件去配置:
#DataSource Config spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:6033/data_service?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root spring.jpa.show-sql= true spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jackson.serialization.indent_output=false
hibernate.hbm2ddl.auto節(jié)點(diǎn)的值有幾個(gè)create、create-drop、update、validate、none
- create:每次加載hibernate會(huì)自動(dòng)創(chuàng)建表,以后啟動(dòng)會(huì)覆蓋之前的表,所以這個(gè)值基本不用,嚴(yán)重會(huì)導(dǎo)致的數(shù)據(jù)的丟失。
- create-drop : 每次加載hibernate時(shí)根據(jù)model類(lèi)生成表,但是sessionFactory一關(guān)閉,表就自動(dòng)刪除,下一次啟動(dòng)會(huì)重新創(chuàng)建。
- update:加載hibernate時(shí)根據(jù)實(shí)體類(lèi)model創(chuàng)建數(shù)據(jù)庫(kù)表,這是表名的依據(jù)是@Entity注解的值或者@Table注解的值,sessionFactory關(guān)閉表不會(huì)刪除,且下一次啟動(dòng)會(huì)根據(jù)實(shí)體model更新結(jié)構(gòu)或者有新的實(shí)體類(lèi)會(huì)創(chuàng)建新的表。
- validate:?jiǎn)?dòng)時(shí)驗(yàn)證表的結(jié)構(gòu),不會(huì)創(chuàng)建表
- none:?jiǎn)?dòng)時(shí)不做任何操作
實(shí)體類(lèi)的寫(xiě)法:
package com.example.demo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @Entity //實(shí)體類(lèi)的注解 public class Girl { @Id //@id注意選擇這個(gè)javax.persistence @GeneratedValue private Integer id; private String cupSize; private Integer age; public Girl() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getCupSize() { return cupSize; } public void setCupSize(String cupSize) { this.cupSize = cupSize; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
第五步:?jiǎn)?dòng)項(xiàng)目即可
到此這篇關(guān)于springboot根據(jù)實(shí)體類(lèi)生成表的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)springboot 實(shí)體類(lèi)生成表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Jmeter測(cè)試時(shí)遇到的各種亂碼問(wèn)題及解決
這篇文章主要介紹了Jmeter測(cè)試時(shí)遇到的各種亂碼問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03MyBatisPlus+Lombok實(shí)現(xiàn)分頁(yè)功能的方法詳解
Lombok是一個(gè)Java類(lèi)庫(kù),提供了一組注解,簡(jiǎn)化POJO實(shí)體類(lèi)開(kāi)發(fā)。本文將為大家介紹一下Lombok的使用以及如何利用MyBatisPlus+Lombok實(shí)現(xiàn)分頁(yè)功能,感興趣的可以動(dòng)手嘗試一下2022-07-07利用Springboot+vue實(shí)現(xiàn)圖片上傳至數(shù)據(jù)庫(kù)并顯示的全過(guò)程
最近遇到個(gè)需求,需要將圖片在前端上傳到服務(wù)器進(jìn)行保存,然后讀取到前端進(jìn)行展示,這篇文章主要給大家介紹了關(guān)于利用Springboot+vue實(shí)現(xiàn)圖片上傳至數(shù)據(jù)庫(kù)并顯示的相關(guān)資料,需要的朋友可以參考下2023-04-04Java四舍五入時(shí)保留指定小數(shù)位數(shù)的五種方式
這篇文章主要介紹了Java四舍五入時(shí)保留指定小數(shù)位數(shù)的五種方式,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-09-09Netty分布式Future與Promise執(zhí)行回調(diào)相關(guān)邏輯剖析
這篇文章主要為大家介紹了Netty分布式Future與Promise執(zhí)行回調(diào)相關(guān)邏輯剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03springboot json時(shí)間格式化處理的方法
這篇文章主要介紹了springboot json時(shí)間格式化處理的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03