设为首页 加入收藏

TOP

quarkus数据库篇之一:比官方demo更简单的基础操作(二)
2023-08-26 21:11:08 】 浏览:94
Tags:quarkus demo 简单的
;quarkus-junit5</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>quarkus-maven-plugin</artifactId> <extensions>true</extensions> <executions> <execution> <goals> <goal>build</goal> <goal>generate-code</goal> <goal>generate-code-tests</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> <maven.home>${maven.home}</maven.home> </systemPropertyVariables> </configuration> </plugin> </plugins> </build> </project>

配置文件

  • 本次实战会用到Hibernate自动重新建表的功能,此功能会先删除库中已存在的同名表,因此,只有一个profile配置的时候,不要让此应用连接到生产环境
  • 最安全的做法是使用profile功能将生产环境和测试环境的配置文件分开,测试环境的配置文件中,是测试数据库,并且开启了自动重新建表的的功能,而生产环境的配置文件中,自动重新建表的功能是关闭的
  • 先来看公共配置文件application.properties,此文件和profile无关,应用一定会加载,里面是各个profile都会用到的公共配置,例如数据库类型
quarkus.datasource.db-kind=postgresql
quarkus.hibernate-orm.log.sql=true
quarkus.datasource.jdbc.max-size=8
quarkus.datasource.jdbc.min-size=2
  • 再看application-test.properties,这是当profile等于test时才会用到的配置文件,有两处要注意的地方稍后会提到
quarkus.datasource.username=quarkus
quarkus.datasource.password=123456
quarkus.datasource.jdbc.url=jdbc:postgresql://192.168.50.43:15432/quarkus_test
quarkus.hibernate-orm.database.generation=drop-and-create
quarkus.hibernate-orm.sql-load-script=import.sql
  • 上述配置,有以下两处值得重视的配置项
  1. quarkus.hibernate-orm.database.generation:有六个取值,如下表
取值 含义
none 啥也不做
create 第一次启动会建表,之后启动不会再改动
drop-and-create 每一次启动应用的时候都删表(数据也没了),然后建表,再执行import.sql导入数据
drop 启动应用的时候删表,不删库
update 保留数据,升级表结构
validate 检查表结构与entity是否匹配
  • 从上表可以看出,drop-and-create这个配置很适合开发和测试阶段,因为每次都会整理好数据,让测试和验证不受历史数据的影响
  • 由于drop-and-createupdate会改动数据库,因此不适合生产环境使用,这一点要牢记,官方也给出了警告

image-20220504121200224

  1. quarkus.hibernate-orm.sql-load-script:指定sql文件,在配置项quarkus.hibernate-orm.database.generation等于drop-and-create的时候,就执行此sql文件,可以用来生成初始化数据
  • 配置完成了,接下来开始写代码,从最核心的实体类开始

SQL文件

  • 刚才的配置文件中配合的import.sql,其放置位置与applicatin.properites文件相同,内容如下,可见是往known_fruits表写入了三条记录
INSERT INTO known_fruits(id, name) VALUES (1, 'Cherry');
INSERT INTO known_fruits(id, name) VALUES (2, 'Apple');
INSERT INTO known_fruits(id, name) VALUES (3, 'Banana');
  • 从前面的配置可知,profile等于test的时候,应用启动的时候,会根据实体类的信息执行删表和建表的操作,然后执行import.sql导入三条记录

编码:实体类

  • 熟悉hibernate的读者都知道,实体类并非只有get和set方法的Pojo,它包含了大量
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇聊聊JDK1.0到JDK20的那些事儿 下一篇Nacos源码 (3) 注册中心

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目