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
添加其自增的屬性
第四步:啟動項(xiàng)目是否生成表格
補(bǔ)充的知識點(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)址:
//www.ythuaji.com.cn/article/222622.htm
實(shí)體類的寫法:
package com.example.demo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @Entity //實(shí)體類的注解 public class Girl { @Id //@id注意選擇這個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; } }
第五步:啟動項(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)行該程序,沒有表格會新建表格,表內(nèi)有數(shù)據(jù)會清空) -
ddl-auto:create-drop
(每次程序結(jié)束的時候會清空表) -
ddl-auto:update
(每次運(yùn)行程序,沒有表格會新建表格,表內(nèi)有數(shù)據(jù)不會清空,只會更新) -
ddl-auto:validate
(運(yùn)行程序會校驗(yàn)數(shù)據(jù)與數(shù)據(jù)庫的字段類型是否相同,不同會報(bào)錯)
一般情況下選擇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; }
啟動springboot項(xiàng)目
可看到控制臺上顯示了創(chuàng)建表中的
然后查看數(shù)據(jù)庫中是否生成了對應(yīng)的表:
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/qq_41988504/article/details/86073511