首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有可能在Spring Boot中运行两个使用spring.jpa.generate-ddl填充的嵌入式数据库?

在Spring Boot中运行两个使用spring.jpa.generate-ddl填充的嵌入式数据库是可能的。Spring Boot提供了多种数据库支持,并且可以同时运行多个数据库实例。

要实现这个目标,可以按照以下步骤操作:

  1. application.propertiesapplication.yml配置文件中,配置两个不同的数据源。例如,可以配置一个数据源为H2数据库,另一个数据源为HSQLDB数据库。
  2. pom.xml文件中,添加H2和HSQLDB的依赖。例如,可以添加以下依赖:
代码语言:txt
复制
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <scope>runtime</scope>
</dependency>
  1. 创建两个数据源的配置类。可以分别创建H2DataSourceConfigHSQLDBDataSourceConfig类,并在这些类中配置相应的数据源。
代码语言:txt
复制
@Configuration
@EnableJpaRepositories(basePackages = "com.example.h2.repository",
        entityManagerFactoryRef = "h2EntityManagerFactory",
        transactionManagerRef = "h2TransactionManager")
public class H2DataSourceConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.h2")
    public DataSource h2DataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean h2EntityManagerFactory(EntityManagerFactoryBuilder builder) {
        return builder
                .dataSource(h2DataSource())
                .packages("com.example.h2.entity")
                .build();
    }

    @Bean
    public PlatformTransactionManager h2TransactionManager(EntityManagerFactoryBuilder builder) {
        return new JpaTransactionManager(h2EntityManagerFactory(builder).getObject());
    }
}

@Configuration
@EnableJpaRepositories(basePackages = "com.example.hsqldb.repository",
        entityManagerFactoryRef = "hsqldbEntityManagerFactory",
        transactionManagerRef = "hsqldbTransactionManager")
public class HSQLDBDataSourceConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.hsqldb")
    public DataSource hsqldbDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean hsqldbEntityManagerFactory(EntityManagerFactoryBuilder builder) {
        return builder
                .dataSource(hsqldbDataSource())
                .packages("com.example.hsqldb.entity")
                .build();
    }

    @Bean
    public PlatformTransactionManager hsqldbTransactionManager(EntityManagerFactoryBuilder builder) {
        return new JpaTransactionManager(hsqldbEntityManagerFactory(builder).getObject());
    }
}
  1. application.propertiesapplication.yml配置文件中,分别配置两个数据源的相关属性。例如,可以配置以下属性:
代码语言:txt
复制
spring.datasource.h2.url=jdbc:h2:mem:testdb
spring.datasource.h2.username=sa
spring.datasource.h2.password=password

spring.datasource.hsqldb.url=jdbc:hsqldb:mem:testdb
spring.datasource.hsqldb.username=sa
spring.datasource.hsqldb.password=password
  1. 创建两个实体类和对应的Repository接口。例如,可以创建H2EntityHSQLDBEntity实体类,并分别创建H2RepositoryHSQLDBRepository接口。
代码语言:txt
复制
@Entity
@Table(name = "h2_entity")
public class H2Entity {
    // ...
}

@Entity
@Table(name = "hsqldb_entity")
public class HSQLDBEntity {
    // ...
}

@Repository
public interface H2Repository extends JpaRepository<H2Entity, Long> {
    // ...
}

@Repository
public interface HSQLDBRepository extends JpaRepository<HSQLDBEntity, Long> {
    // ...
}
  1. 在需要使用数据库的地方,注入相应的Repository,并进行操作。
代码语言:txt
复制
@Service
public class MyService {

    private final H2Repository h2Repository;
    private final HSQLDBRepository hsqldbRepository;

    public MyService(H2Repository h2Repository, HSQLDBRepository hsqldbRepository) {
        this.h2Repository = h2Repository;
        this.hsqldbRepository = hsqldbRepository;
    }

    // 使用h2Repository和hsqldbRepository进行数据库操作
}

通过以上步骤,就可以在Spring Boot中同时运行两个使用spring.jpa.generate-ddl填充的嵌入式数据库。对于具体的应用场景和推荐的腾讯云相关产品和产品介绍链接地址,可以根据实际需求进行选择和配置。

相关搜索:当我运行spring boot程序时,有没有什么方法可以填充数据库?有没有可能在不使用Spring Boot JPA的情况下测试基于java的CRUD?使用spring集成和spring boot执行器检查MySql数据库的运行状况在Java Spring Boot中使用两种不同类型的两个findAll()填充DTOSpring Boot:使用WildFly的standalone.xml中的数据库配置如何在Spring Boot中配置类似H2数据库的mongoDB的内存嵌入式数据库我们可以在spring batch中通过spring boot应用程序运行的两个作业之间传递参数吗使用Java Spring和CrudRepository,有没有可能在表中插入新行而不用每一列都填充值?使用MySQL连接和oracle连接的Spring boot应用程序?(两个数据库)使用Spring Boot、Thymeleaf和Oracle:如何动态填充在片段中定义的网站菜单中的子菜单?如何使用Spring Boot Crudrepository将数据插入到同一数据库的两个表中?使用Spring boot从MySQL数据库中获取按日期过滤的数据使用两个数据库表中的数据填充RecyclerView项使用JSP的spring boot如何从数据库中检查复选框值有没有可能在Spring Boot中实现一个POJO,它有一个表示复合主键的字段,而不使用JPA或嵌套类?有没有办法在主从架构中配置hazelcast,就像使用Spring boot的redis一样使用Spring使用数据库中的多列数据填充下拉框不起作用使用spring- boot和chart js可视化MySQL数据库中的数据Spring boot应用程序在作为容器运行时无法连接到在docker容器中运行的mysql数据库如何使用ubuntu中的命令行在后台运行基于gradle的spring boot应用程序?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

微服务架构之Spring Boot(四十四)

30.3.3创建和删除JPA数据库 默认情况下,仅当您使用嵌入式数据库(H2,HSQL或Derby)时,才会自动创建JPA数据库。您可以使用 spring.jpa.* 属性显式配置JPA设 置。...30.3.4在View打开EntityManager 如果您正在运行Web应用程序,则默认情况下Spring Boot会注册 OpenEntityManagerInViewInterceptor 以应用...30.5使用H2Web控制台 该H2数据库提供了一个 基于浏览器控制台是Spring Boot可以自动为您配置。满足以下条件时,将自动配置控制台: 您正在开发基于servletWeb应用程序。...您正在使用Spring Boot开发人员工具。...如果您没有使用Spring Boot开发人员工具但仍想使用H2控制台,则可以使用值 true 配置 spring.h2.console.enabled 属性。

1.3K20

13.12 Spring Boot集成Security遇到问题13.12 Spring Boot集成Security遇到问题问题1:Spring Boot集成Security使用数据库用户角色

13.12 Spring Boot集成Security遇到问题 问题1:Spring Boot集成Security使用数据库用户角色权限用户名问题 问题描述 代码 package com.springboot.in.action.dao...1 limit 1", nativeQuery = true) def findByUsername(username: String): User 问题2:Spring Boot集成Security...使用数据库用户角色权限ROLE_问题 问题描述 日志打出来ROLE是USER,代码里调用是@PreAuthorize("hasRole('USER')"),为什么权限却是不对?...,代码调用地方保持不变,数据库里面角色必须统一有ROLE_前缀。...而我们看到后台打印日志内容也是数据库信息: username is jack, ROLE_USER LoginFilter:{ "accountNonExpired":true,

1.3K20
  • Spring Boot和内存数据库H2使用教程

    使用传统数据库需要大量开销。 场景2 - 考虑单元测试 当数据库某些数据/模式发生更改时,不希望它们失败 可能希望能够并行运行它们 - 多个开发人员可能并行运行测试。...好处 零项目设置或基础设施 零配置 零维护 易于学习,POC和单元测试 Spring Boot提供了简单配置,可以在真实数据库和内存数据库(如H2)之间切换 H2   H2是内存数据库流行之一。...Spring Boot与H2集成非常好。H2是用Java编写关系数据库管理系统。它可以嵌入Java应用程序,也可以在客户端 - 服务器模式下运行。 H2支持SQL标准子集。...H2还提供了一个Web控制台来维护数据库Spring Boot和H2 您需要很少配置才能将Spring Boot应用程序与H2连接。 在大多数情况下,只需将H2运行时jar添加到依赖项即可。...但是,如果连接到mysql数据库Spring Boot会知道它是一个永久数据库。默认情况下,它要求您设置数据库,设置表并使用您建立连接。 Spring Boot应用程序是如何连接数据库H2

    5.8K20

    【SpringBoot DB 系列】h2databse 集成示例 demo

    h2dabase 基于内存数据库,更常见于嵌入式数据库使用场景,依赖小,功能齐全;一般来讲,正常商业项目用到它场景不多,但是在一些特殊 case ,还是比较有用,比如用于单元测试,业务缓存...=org.h2.Driver 上面的配置方式,和我们 mysql 数据库配置没有什么特别的,这里 url 请注意一下 jdbc:h2:~/h2-db: 嵌入式使用姿势,会在用户根目录下生成一个名为h2...-db.mv.db文件(数据库 schema 和 d column 就存在里面) jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1: 内存模式,应用重启之后数据库会清空,所以在测试用例...,可以考虑用这种 除了上面嵌入式使用姿势之外,h2-dabase 还支持通过 tcp 方式,指定一个远程目录 jdbc:h2:tcp://localhost/~/test 上面是 h2dabase...=true spring.jpa.generate-ddl=true II.

    43420

    【SpringBoot DB 系列】h2databse 集成示例 demo

    [logo.jpg] 【SpringBoot DB 系列】h2databse 集成示例 demo h2dabase 基于内存数据库,更常见于嵌入式数据库使用场景,依赖小,功能齐全;一般来讲,正常商业项目用到它场景不多...=org.h2.Driver 上面的配置方式,和我们 mysql 数据库配置没有什么特别的,这里 url 请注意一下 jdbc:h2:~/h2-db: 嵌入式使用姿势,会在用户根目录下生成一个名为h2...-db.mv.db文件(数据库 schema 和 d column 就存在里面) jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1: 内存模式,应用重启之后数据库会清空,所以在测试用例...,可以考虑用这种 除了上面嵌入式使用姿势之外,h2-dabase 还支持通过 tcp 方式,指定一个远程目录 jdbc:h2:tcp://localhost/~/test 上面是 h2dabase...=true spring.jpa.generate-ddl=true II.

    84300

    SpringDataJPA笔记(2)-基于SpringBoot配置项

    基于SpringBoot配置项 大概整理了一下 配置项 说明 spring.jpa.database spring.jpa.database-platform 设置数据库引擎 spring.jpa.generate-ddl...如果Hibernate自动配置被激活,那该标识就不会被使用,因为ddl-auto设置粒度更细 spring.jpa.hibernate.ddl-auto create----每次运行该程序,没有表格会新建表格...,表内有数据会清空 create-drop----每次程序结束时候会清空表update----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新validate----运行程序会校验数据与数据库字段类型是否相同...org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl spring.jpa.hibernate.naming.physical-strategy...物理名称命名策略 spring.jpa.hibernate.use-new-id-generator-mappings 是否使用Hibernate主键生成策略 spring.jpa.mapping-resources

    1.3K20

    重学SpringBoot系列之基础知识回顾

    什么是Spring Boot Starter Parent 嵌入式web容器 Spring Data spring boot2.x新特性 基础环境升级 依赖组件升级 默认软件替换 新技术引入 springboot...当然父项目只能帮你管理一些常用类库版本,如果你引入一些不常用jar,还是要自己管理版本号及兼容性 ---- 嵌入式web容器 Spring boot打成jar包,默认包含嵌入式web容器:tomcat...---- lombok lombok使用比较频繁,我这里记录两个平时用但是没怎么注意注解 Slf4j注解 将在编译期自动帮我们引入Logger日志常量,我们在代码中就直接使用log.info或log.debug...---- Auto filling Java call arguments 开发,我们通常会调用其他已经编写好函数,调用后需要填充参数,但是绝大多数情况下,传入变量名称和该函数参数名一致,当参数较多时...安装完该插件以后,调用一个函数,使用 Alt+Enter 组合键,调出 “Auto fill call parameters” 自动使用该函数定义参数名填充

    66110

    sprongboot配置druid数据源使用druid监控

    自定义druid 介绍 首先它是一个数据库连接池,负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间数据库连接来避免因为没有释放数据库连接而引起数据库连接遗漏...这项技术能明显提高对数据库操作性能。...serverTimezone=GMT%2B8 #使用 MySQL 8.0以上连接驱动包需要使用一下类作为驱动类 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver...#自动建表 spring.jpa.generate-ddl=true #显示SQL语句 spring.jpa.show-sql=true #设置Mysql数据库类型类型 spring.jpa.database-platform...监控配置分类两个步骤,一是配置一个druid后台 管理servlet;二是配置一个druidfilter package com.example.springboot.configuration;

    89510

    微服务架构之Spring Boot(四十一)

    有关更多高级示例,请参阅“操作方法”部分,通常是为了完全控制DataSource配置。 30.1.1嵌入式数据库支持 通过使用内存嵌入式数据库来开发应用程序通常很方便。...显然,内存数据库不提供持久存储。您需要在应用程序启动时填充数据库,并准备在 应用程序结束时丢弃数据。 “操作方法”部分包含有关如何初始化数据库部分。...Spring Boot可以自动配置嵌入式H2, HSQL和Derby数据库。您无需提供任何连接URL。您只需要包含要使用嵌入式数据库构建依赖项。...在这个例子,它通过 spring-boot-starter-data-jpa 传递。 如果由于某种原因,您确实为嵌入式数据库配置了连接URL,请注意确保禁用数据库自动关闭。...禁用数据库自动关闭允 许Spring Boot控制数据库何时关闭,从而确保在不再需要访问数据库时发生这种情况。

    1.4K20

    SpringBoot系列之数据库初始化-jpa配置方式

    上一篇博文介绍如何使用spring.datasource来实现项目启动之后数据库初始化,本文作为数据库初始化第二篇,将主要介绍一下,如何使用spring.jpa配置方式来实现相同效果 本文使用MySql数据库, 版本8.0.31 2....配置 注意实现初始化数据库表操作核心配置就在下面,重点关注 配置文件: resources/application.yml # 默认数据库名 database: name: story spring...(注意如上面data.sql数据插入依然会重复执行,会导致主键插入冲突) 本文中需要重点关注几个配置: spring.datasource.initialization-mode: always...同样需要设置为always spring.jpa.generate-ddl: true 会根据@Entity注解实体类生成对应数据表 spring.jpa.hibernate.ddl-auto: create

    1.1K10

    重学SpringBoot系列之嵌入式容器配置与应用

    重学SpringBoot系列之嵌入式容器配置与应用 嵌入式容器运行参数配置 调整SpringBoot应用容器参数两种配置方法 配置文件方式 常用配置参数 tomcat性能优化核心参数 自定义配置类方式...依赖 新增加一个类继承SpringBootServletInitializer实现configure: build要有finalName标签 打包与运行 嵌入式容器运行参数配置 在Spring Boot...当我们添加了spring-boot-starter-web依赖后,默认会使用Tomcat作为嵌入式Web容器,不需要我们单独部署,将web应用打成jar包即可运行。...如果你喜欢运行一个嵌入式Web服务器,那么你根本不需要这个。...jsp静态资源引用也必须是:/boot-launch/image/xxxx.png,不能是/image/xxxx.png JSPwar包,webjars资源使用方式不再被支持

    1.7K10

    spring boot知识大汇总(你要springboot都在这)

    提供了一些大型项目中常见非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等 4. SpringBoot不是对Spring功能上增强,而是提供了一种快速使用Spring方式 3....自动配置(auto configuration) SpringBoot自动配置是一个运行时(更准确地说,是应用程序启动时)过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。...在application.properties配置数据库和jpa相关属性 # 配置数据库连接信息 spring.datasource.driver-class-name=com.mysql.jdbc.Driver...# 配置Spring Data JPA相关信息 spring.jpa.database=mysql spring.jpa.show-sql=true spring.jpa.generate-ddl...如果不存在数据,从数据库查询 List all = userRepository.findAll(); // 将查询出数据存储到缓存 // 先将集合转换成json格式字符串, 使用

    1.2K20

    Spring BootSpring Data JPA(一)1、新建工程2、配置数据库3、代码结构4、从数据到逻辑总结

    1、新建工程 首先,我们使用STS建一个工程: Paste_Image.png 这里我们示例使用H2数据库,主要是因为简单,使用其他数据库也是一样,如果你用Web作为用户界面的话把Web选上,我们这里使用...Paste_Image.png 2、配置数据库 Spring Boot配置内容参考官方文档:Appendix A....我们先启动服务: 运行程序 在项目名称上,右键,Run As,Java Application 或者 Spring Boot App。...请看: JUnit窗口 IDE里面的JUnit 视图窗口,运行两个测试方法,全部通过。这里仅是示例,实际测试应更复杂,需分析测试覆盖率等。...插件 Ionic 和 Cordova 误解 使用Ionic Native 使用没有包含在Ionic Native插件 Ionic 2 添加图表 1.

    4.5K50
    领券