Springboot引入hibernate配置自动建表

文章介绍了如何在SpringBoot项目中集成JPA和MySQL,包括引入必要的依赖,配置application.yml文件以控制自动建表策略,如update用于自动更新数据库结构。此外,还讲解了实体类的标注,如@Entity和@Table,以及主键策略的设置。当实体类和Repository不在默认扫描路径时,需要使用@EntityScan和@EnableJpaRepositories进行额外配置。

一、引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

二、配置application.yml文件

自动建表的配置是ddl-auto,有多个属性可选
1. none 以数据表字段为准,不做任何修改
2. validate 加载Hibernate时,会对创建数据库表的结构进行验证并比较,不会创新表,但是会插入新的结构和值
3. create 每次加载Hibernate,重新创建数据库表结构,(会导致数据库表数据丢失)
4. create-drop 加载Hibernate时创建,退出是删除表结构
5. update 加载Hibernate自动更新数据库结构(最常用的一个)

三,对应数据库表的实体类

@Entity 代表JPA(Hibernate)的实体类注解
@Table 可以添加表名称和索引等设置
@Id代表这是主键,@GeneratedValue和@GenericGenerator设置主键策略是UUID

四、项目启动类添加扫描表结构注解

在Springboot开发中使用JPA时,通常在 程序启动类 所在包或者其子包的某个位置定义我们的Entity 和 Repository,这样基于Springboot的自动配置,无需额外配置,我们定义的Entity和Repository即可被发现和使用。但有时候我们需要定义Entity和Repository不在应用程序所在包及其子包,那么这时候就需要使用@EntityScan和 @EnableJpaRepositories了

@EnableJpaRepositories :
value:basePackages的别名,简化basePackages。
  basePackages:用于配置扫描Repositories所在的包。填写字符串或字符串数组形式的包名。
@EntityScan:
用来扫描和发现指定包及其子包中的Entity注解定义的类。其用法如下:
@EntityScan(basePackages = {"com.department.entities","come.employee.entities"})

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值