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

轻量级嵌入式数据库H2的愉快玩耍之旅

H2数据库特别适用于快速构建的小型应用。数据量小的元数据管理,不需要大型数据库支撑的业务场景都可以用。尤其在应用开发中和单元测试中使用非常方便,而且节省系统资源。...我们知道H2支持像tomcat一样内嵌到springboot应用中,也支持独立的server进程模式。通过不同的配置我们来演示一下。...5.内嵌模式 内嵌模式,就是把在应用中引入H2,启动应用的同时,会把H2数据服务也启动,应用中既包含了H2数据库的服务端,同时应用又作为客户端来连接H2数据库。...因为我们在初始化指定了DDL 、 DML SQL脚本,创建了student表,而且插入了3条数据。所以会呈现出来。证明集成成功。...通过url后缀MODE参数来设置,这里我们假如url为 jdbc:h2:~/test,总结一下自己使用: Oracle jdbc:h2:~/test;MODE=Oracle或SQL语句SET MODE

2.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SpringBoot使用H2内存数据库单元测试的代码示例

    /h2database 使用H2内存数据库来单元测试的优势在于 h2更快速,且支持JDBC API。...支持内嵌和服务器模式;是一种内存的数据库 支持浏览器控制台 jar包比较小 另外 如果使用公共的开发数据库,服务器如果回收再测试就需要继续安装建表和插入数据。...如果每个人都本地测试,为了测试都要安装MySQL或Oracle等数据库并手动执行建表和插入。 当然也有一些劣势,虽然可以支持多种数据库模式,但是特殊的语句可能会不支持。...使用H2数据库就不容易相互影响。 三、编码 首先看项目结构 本示例非常简单,提供了一个UserInfo实体,建表语句放在schema.sql中,data.sql插入几条记录。...main/resources/lib 项目的地址:git@github.com:chujianyun/springboot-h2-test-demo.git 四、Learn More 4.1 调试 可以在插入语句处断点

    3.7K30

    一个H2数据库Bug的定位之旅

    需要介绍一下H2和FitNesse,因为这是整篇文章的基础。 别紧张,只是简单了解一下。知道它们是个什么东西就行了。 H2数据库 H2数据库是什么?...因为支持纯内存形式,所以在Java开发中,经常被作为单元测试的数据库。跑前插入,因为基于内存,跑后直接回收清除了。 OK,到这里,你已经大致了解了H2是一个什么东西了。...因为H2的一些命令和Oracle相似,于是我在TRUNCATE命令之后,加了一条ALTER TABLE {表名} ALTER COLUMN {需要重置的列名} RESTART WITH 1的命令,将每一个表的自增主键重设为...难道说H2数据库有Bug?只是说这个Bug的触发条件我没有发现而已? 定位问题 开启Debug模式,当我觉得即将水落石出的时候,发现这H2源码太难追踪,层数太深,太难定位到问题。...对数据库了解的人,上面这段代码并不难读懂。里面的Sequence需要给不了解一下Oracle的同学讲一下。 Sequence号是数据库系统按照一定规则自增的数字序列,因为自增所以不会重复。

    66330

    H2数据库教程_h2数据库编辑数据库

    插入表名称或列名称 要将表和列名称插入脚本,请单击树中的项目。如果在查询为空时单击表,则会SELECT * FROM ...添加。在键入查询时,使用的表在树中展开。...如果您的EclipseLink版本中没有此平台,则可以在许多情况下使用Oracle平台。另见H2Platform。...嵌入模式 (当前)最简单的解决方案是在嵌入模式下使用数据库,这意味着在应用程序启动时打开一个连接(一个好的解决方案是使用Servlet侦听器,见下文),或者在会话启动时。...只要数据库在同一进程中运行,就可以同时从多个会话和应用程序访问数据库。大多数Servlet容器(例如Tomcat)只使用一个进程,因此这不是问题(除非您在群集模式下运行Tomcat)。...到目前为止,只运行了很少的测试,一切似乎都按预期工作。全文搜索尚未经过测试,但原生全文搜索应该有效。

    5.3K30

    H2试镜记录-扮演ORACLE

    在利用H2推广实施单元测试的过程中,遇到和解决了一些问题,在此记录一下。 项目背景 金融行业传统的业务系统,重度使用ORACLE 数据库,包括很多业务逻辑是采用存储过程(SP)实现的。...Oracle数据库->H2数据库 1 数据库删表出错 原因:由于早期DDL 编写不规范,在drop 表时没有加上if exists 的判断 drop table if exists users; 导致DDL...很明显,这个28个9的sequence是无法导入h2的 解决办法:和开发同学协商是否有必要用28个9。不行的化,退而求其次,在测试环境下用不同的sql。...4 Web Console 在与开发同学沟通的过程中,有开发同学指出,在他们的开发过程中,一般都是通过pl/sql等连接ORACLE数据库进行数据表的相关开发工作,这部分DDL/DML的操作也是在开发的最后才作为版本的内容提交进代码库...由于最终的线上数据库还是Oracle,笔者还是建议开发人员通过PL/SQL连接ORACLE进行数据库相关的开发工作。需要变化的是,像随时提交代码一样,提交数据库的代码到代码库中。

    85210

    h2数据库使用_数据库教程

    src            H2数据库的源代码 启动 win10下启动: 进入H2 的bin目录,运行 h2.bat 或 h2w.bat(区别为h2w.bat是后台静默运行) 系统会进入H2 数据库的...点击Connect,进入管理终端 运行模式与运行方式 运行模式 H2有三种运行模式。 内嵌模式(Embedded Mode):内嵌模式下,应用和数据库同在一个JVM中,通过JDBC进行连接。...内嵌模式性能会比较好。 服务器模式(Server Mode):使用服务器模式和内嵌模式一样,只不过它可以跑在另一个进程里。...连接方式 以嵌入式(本地)连接方式连接H2数据库 这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后,此时数据库文件就会被锁定,那么其他客户端就无法再连接了。...即home目录) C:/{path}/{fileName} 在指定盘符的指定目录下创建数据库文件 附加参数: AUTO_SERVER=TRUE 启动自动混合模式,允许开启多个连接,该参数不支持在内存中运行模式

    3.4K10

    Spring Boot和内存数据库中H2的使用教程

    例如,对于Oracle或mySQL数据库,您需要 安装数据库 设置架构 设置表格 填充数据 通过设置数据源和许多其他代码将应用程序连接到数据库 场景1 - 让我们考虑一下你想要快速进行POC概念验证测试的情况...好处 零项目设置或基础设施 零配置 零维护 易于学习,POC和单元测试 Spring Boot提供了简单配置,可以在真实数据库和内存数据库(如H2)之间切换 H2   H2是内存数据库中的流行之一。...Spring Boot与H2的集成非常好。H2是用Java编写的关系数据库管理系统。它可以嵌入Java应用程序中,也可以在客户端 - 服务器模式下运行。 H2支持SQL标准的子集。...H2还提供了一个Web控制台来维护数据库。 Spring Boot和H2 您需要很少的配置才能将Spring Boot应用程序与H2连接。 在大多数情况下,只需将H2运行时jar添加到依赖项中即可。...H2和Spring Boot组合如何工作? 首先也是最重要的事情 - Spring Boot很聪明。 如果您正在与内存数据库进行通信,则默认情况下,它会查看实体并创建数据库和表。

    5.8K20

    警示:一个专为AIX上12.1版本定制的Bug正在发生

    题记:一些用户在使用 Oracle Database 12.1 版本时(包含12.1.0.1 和 12.1.0.2 初始版本),再次遭遇到一个『专门为 AIX 定制的BUG』,这个BUG的影响非常大,再次提醒大家关注...12.1 中,数据库将原本单一的 LGWR 进程进化为主从进程的结构,LGWR一个主进程,配合最多100个从属的SLAVE进程工作,可以将原来典型的Log File Sync等待降低,增加数据库的事务率和处理能力...如何规避这种风险: 先说如何规避,Oracle 几乎为每个新特性都设置了开关,可以通过隐含参数 _use_single_log_writer 来控制,将该参数设置为TRUE,就回到了11g的模式,使用单一的...处理器上,因为某些原因并未按照顺序来传递日志,导致所有的Slave进程都在等待某个序号的日志批量,这就导致了挂起。...使用新特性,了解新特性,关注行业动态,对于数据库来说是多么重要。 在使用新版本时,总会遇到新问题,欢迎大家留言和我们分享你的踩坑故事。

    1.3K70

    java h2数据库_JAVA 项目中使用 H2 数据库

    JAVA 项目中使用 H2 数据库 发布时间:2018-06-08 15:43, 浏览次数:823 , 标签: JAVA 为什么要使用H2数据库 H2数据库是可以嵌入到JAVA项目中的,因为只需要导入一个...我用的是hibernate,所以还要修改一下Dialect的配置 org.hibernate.dialect.H2Dialect 到这为止,项目里面就可以使用H2了。...SQL Script部分来感受一下建表和插入数据等,help 命令,可以显示所有的命令。...服务式的话,就跟MySQL、Oracle这种数据库差不多,服务器单独运行,可以多个客户端同时连接。...://localhost/mem:test 这个不用记,在H2控制台的Login画面选择连接方式,就会生成不同的URL 链接:https://www.jianshu.com/p/5bcee8eb170c

    59310

    走进Java接口测试之从0到1搭建数据驱动框架(多数据源和业务持久层)

    ,而本文我们演示的是业务数据库使用的是 H2,那么必然的我们需要面对处理多数据源的问题。...特性: 数据源分组,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 内置敏感参数加密和启动初始化表结构 schema 数据库 database。...Mysql、Mysql8、Oracle、PostgreSQL 与 SQL Server,暂不对其他非主流数据库提供支持。...数据库,故使用示意图代替: 实现Service方法 在 service package 下新建 Service 接口 CoffeeService.java: /** * 描述: coffee Service...在实现过程中,你最需要关注的几部分内容是: 基于 MybatisGenerator 或者 MybatisGeneratorGUI 自动化生成持久层代码,节省大量重复开发工作; 使用 TypeHandler

    87930

    Java开发环境系列:H2内嵌式数据库使用教程

    H2数据库是一个开源的,使用java开发的内嵌式数据库。使用者不需要像Oracle、MySQL等数据库一样动则安装几百兆甚至几G的安装程序。以下使用步骤以统一门户系统为例。...1、找到h2数据库的jar包 在项目中引入h2的jar包,比如: D:\repositories\com\h2database\h2\1.4.187\h2-1.4.187.jar 2、双击jar包,配置连接信息...Driver Class:org.h2.Driver JDBC URL:jdbc:h2:file:~/.h2/sample;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1(与application.properties...相同,但掉"log4jdbc:") 3、点击连接,在T_USER表中插入一条数据 insert into t_user (ID, EMAIL, NAME, PASSWORD, ROLE, SALT, SEX...数据库 指定JDBC URL:jdbc:h2:E://research//workspace//H2Test//db//test,点击connect,会看到e盘多出一个文件夹research ?

    2K20

    开源BI工具Metabase安装

    目前Metabase需要Java 7或更高版本,并且可以在OpenJDK或Oracle JDK上运行。 Metabase团队倾向于尽可能使用开源解决方案。...H2(默认) Metabase实例使用H2数据库,不需要做其他配置。当应用程序首次启动时,它将尝试在启动应用程序的相同文件系统位置创建一个新的H2数据库。...监听特定的网络接口 默认情况下,元数据库将在侦听localhost。...处理Metabase中的时区 元数据库尽最大努力确保在您想要的任何时区进行正确和准确的报告,但时区是一个复杂的野兽,所以遵守下面列出的一些建议以确保您的报告按预期发布非常重要。...配置您的JVM以使用您想要用于报告的相同时区,这在理想情况下也应该与数据库的时区匹配。

    2.7K10

    MiniDao1.8.3 版本发布,轻量级Java持久化框架

    Minidao产生的初衷是为了解决Hibernate项目,在复杂SQL具备Mybatis一样的灵活能力,同时支持事务同步。...、国产、大数据等28种数据库 数据库 支持 MySQL √ Oracle、Oracle9i √ SqlServer、SqlServer2012 √ PostgreSQL √ DB2、Informix √...MariaDB √ SQLite、Hsqldb、Derby、H2 √ 达梦、人大金仓、神通 √ 华为高斯、虚谷、瀚高数据库 √ 阿里云PolarDB、PPAS、HerdDB √ Hive、HBase、...CouchBase √ 数据库实现自动适配不再需要手工配置DB类型 解决上个版本重构后,不支持SqlServer分页问题 debug模式下,解决报错: Minidao报错“Template java/...employee.setBirthday(new Date()); employee.setName("scott"); employee.setAge(25); //调用minidao方法插入

    99720

    Seata 0.8.0 正式发布

    0.8.0版本主要feature: 1.支持 oracle 数据库的 AT 模式; 2.支持 oracle 数据库的批量操作; 3.支持 undo_log 表名可配置; 4.支持 mysql 数据库的批量更新和删除操作...; 5.配置中心所有配置项支持-D参数传入; 6.支持定时更新mysql的表结构,可不停机更改表结构; 7.支持 mysql preparedStatement 自增批量插入; 8.支持 mysql preparedStatement...非自增批量插入; 9.支持兜底定时删除 undolog 使用protobuf codec; 10.支持兜底定时删除 undolog 使用 seata codec; 11.支持db driver class...Lanscape: 图片来源:seata 在最初的Roadmap中,是在V1.5.x开始支持Oracle, PostgreSQL, OceanBase的,现在看来,发展是超预期的,期待着v1.0.0版本

    58310

    H2数据库入门_H2数据库越来越大

    当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。...三、运行模式与运行方式 (一)运行模式   H2有三种运行模式。   1、内嵌模式(Embedded Mode)   内嵌模式下,应用和数据库同在一个JVM中,通过JDBC进行连接。...内嵌模式性能会比较好。   2、服务器模式(Server Mode):使用服务器模式和内嵌模式一样,只不过它可以跑在另一个进程里。   ...(二)连接方式   1、以嵌入式(本地)连接方式连接H2数据库   这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后,此时数据库文件就会被锁定,那么其他客户端就无法再连接了...H2数据库的内存模式   (1)、H2数据库被称为内存数据库,因为它支持在内存中创建数据库和表。

    1.1K40

    @DataJpaTest 进行测试的坑

    @DataJpaTest 这个注解主要用来在 Spring 项目中测试 JPA 数据源。 默认情况下,带有 @DataJpaTest 注解的测试使用嵌入式内存数据库。...默认数据库 默认采用的是嵌入的 H2 数据库。 就算你配置了数据库链接,如果你不使用下面的注解的话,@DataJpaTest 还是会使用配置的默认数据库。...事务 @DataJpaTest 具有事务性,会自动回滚插入数据。 如果你的不进行配置的话,你会发现你插入的数据没有办法在数据库中出现。 解决办法就是在方法中,提供 @Commit 注解。...然后再对数据库中的数据进行校验,这个时候数据是不会回滚的。 从日志中,我们也可以看到,插入的数据被回滚了。 当我们提供 Commit 这个注释后,在日志中明确的提示已经提交了。...如果使用 Auto,Hibernate 将会使用 Oracle 的方式来自增的。

    79940
    领券