Springboot如何根據(jù)實(shí)體類生成數(shù)據(jù)庫表
Springboot 實(shí)體類生成數(shù)據(jù)庫表
JPA:springboot -jpa:數(shù)據(jù)庫的一系列的定義數(shù)據(jù)持久化的標(biāo)準(zhǔn)的體系
學(xué)習(xí)的目的是:
利用springboot實(shí)現(xiàn)對數(shù)據(jù)庫的操作
第一步:添加springboot-data-jpa和數(shù)據(jù)庫的依賴關(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>
第二步:編寫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í)體類中使用的注解
@Entity
實(shí)體類的注解@Id
映射到表格中id的屬性@Gernertervalue
添加其自增的屬性
第四步:啟動(dòng)項(xiàng)目是否生成表格
補(bǔ)充的知識(shí)點(diǎn):
根據(jù)實(shí)體類生成數(shù)據(jù)庫的表配置文件有倆種方式分別是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文件的寫法:
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ì)介紹
參考網(wǎng)址:
//chabaoo.cn/article/222622.htm
實(shí)體類的寫法:
package com.example.demo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @Entity //實(shí)體類的注解 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; } }
第五步:啟動(dòng)項(xiàng)目即可
完成~
springboot繼承JPA根據(jù)實(shí)體類生成數(shù)據(jù)庫中的表
首先搭建springboot框架。搭建完成之后:
1. pom中添加的依賴
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!--mysql-connection--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.15</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
2. application.yml中配置jpa配置
server: port: 8080 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/h5mall?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: 123456 hikari: minimum-idle: 5 idle-timeout: 180000 maximum-pool-size: 10 auto-commit: true pool-name: MyHikariCP connection-timeout: 30000 jpa: hibernate: ddl-auto: update show-sql: true
其中jpa下的jpa.hibernate.ddl-auto屬性值有如下:
ddl-auto:create
(每次運(yùn)行該程序,沒有表格會(huì)新建表格,表內(nèi)有數(shù)據(jù)會(huì)清空)ddl-auto:create-drop
(每次程序結(jié)束的時(shí)候會(huì)清空表)ddl-auto:update
(每次運(yùn)行程序,沒有表格會(huì)新建表格,表內(nèi)有數(shù)據(jù)不會(huì)清空,只會(huì)更新)ddl-auto:validate
(運(yùn)行程序會(huì)校驗(yàn)數(shù)據(jù)與數(shù)據(jù)庫的字段類型是否相同,不同會(huì)報(bào)錯(cuò))
一般情況下選擇update,其他屬性值慎用!
定義用戶實(shí)體類,通過注解映射成數(shù)據(jù)庫中的表
import javax.persistence.*; @Entity @Table(name = "user") @Data public class User { @Id @GeneratedValue private Long id; //name屬性為表的字段名。length為字段的長度 @Column(length = 30, name = "userId") private String userId; @Column(name = "userName", length = 20, columnDefinition="varchar(100) COMMENT '用戶名'") private String userName; @Column(name = "phone", length = 20) private String phone; @Column(name = "password", length = 30) private String password; @Column(name = "userRealName", length = 20) private String userRealName; @Column(name = "address", length = 20) private String address; }
啟動(dòng)springboot項(xiàng)目
可看到控制臺(tái)上顯示了創(chuàng)建表中的
然后查看數(shù)據(jù)庫中是否生成了對應(yīng)的表:
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring mvc中@RequestBody注解的作用說明
這篇文章主要介紹了spring mvc中@RequestBody注解的作用說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Spring Boot通過Redis實(shí)現(xiàn)防止重復(fù)提交
表單提交是一個(gè)非常常見的功能,如果不加控制,容易因?yàn)橛脩舻恼`操作或網(wǎng)絡(luò)延遲導(dǎo)致同一請求被發(fā)送多次,本文主要介紹了Spring Boot通過Redis實(shí)現(xiàn)防止重復(fù)提交,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06Java Socket實(shí)現(xiàn)UDP編程淺析
類 DatagramSocket 何 DatagramPacket(數(shù)據(jù)包/數(shù)據(jù)報(bào)) 實(shí)現(xiàn)了基于 UDP協(xié)議網(wǎng)絡(luò)程序;UDP數(shù)據(jù)報(bào)通過數(shù)據(jù)報(bào)套接字 DatagramSocket 發(fā)送和接收,系統(tǒng)不保證 UDP數(shù)據(jù)報(bào)一定能夠安全送達(dá)目的地,也不確定什么時(shí)候可以抵達(dá)2022-11-11SpringBoot Pom文件依賴及Starter啟動(dòng)器詳細(xì)介紹
這篇文章主要介紹了SpringBoot Pom文件的依賴與starter啟動(dòng)器的作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09