Springboot如何根据实体类生成数据库表
程序员文章站
2022-03-02 11:33:00
目录springboot 实体类生成数据库表springboot继承jpa根据实体类生成数据库中的表springboot 实体类生成数据库表jpa:springboot -jpa:数据库的一系列的定义...
springboot 实体类生成数据库表
jpa:springboot -jpa:数据库的一系列的定义数据持久化的标准的体系
学习的目的是:
利用springboot实现对数据库的操作
第一步:添加springboot-data-jpa和数据库的依赖关系
<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
第三步:实体类中使用的注解
-
@entity
实体类的注解 -
@id
映射到表格中id的属性 -
@gernertervalue
添加其自增的属性
第四步:启动项目是否生成表格
补充的知识点:
根据实体类生成数据库的表配置文件有俩种方式分别是yml和properties文件进行配置
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
有更加详细介绍
参考网址:
实体类的写法:
package com.example.demo; import javax.persistence.entity; import javax.persistence.generatedvalue; @entity //实体类的注解 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; } }
第五步:启动项目即可
完成~
springboot继承jpa根据实体类生成数据库中的表
首先搭建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
(每次运行该程序,没有表格会新建表格,表内有数据会清空) -
ddl-auto:create-drop
(每次程序结束的时候会清空表) -
ddl-auto:update
(每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新) -
ddl-auto:validate
(运行程序会校验数据与数据库的字段类型是否相同,不同会报错)
一般情况下选择update,其他属性值慎用!
定义用户实体类,通过注解映射成数据库中的表
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项目
可看到控制台上显示了创建表中的
然后查看数据库中是否生成了对应的表:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'
-
NetCore +EFCore+SqlServer根据数据库生成实体类到项目中
-
使用IDEA插件EasyCode实现数据库表反向生成实体类
-
C#实现根据实体类自动创建数据库表
-
VS根据数据库生成实体类
-
Mybatis通过数据库表自动生成实体类和xml映射文件
-
mybatis plus generator 根据数据库自动生成实体类的实现示例
-
根据数据库表名和主键自动生成 springbootJpa的 Dao层和Service层工具类
-
Mybatis总结之如何自动生成数据库表结构
-
如何用nodejs给C#写一个数据表的实体类生成工具