Java嵌入式数据库H2学习总结(一)——H2数据库入门

2023-10-31

Java嵌入式数据库H2学习总结(一)——H2数据库入门

一、H2数据库介绍

  常用的开源数据库有:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2和HSQLDB类似,十分适合作为嵌入式数据库使用,而其它的数据库大部分都需要安装独立的客户端和服务器端。

  H2的优势:
    1、h2采用纯Java编写,因此不受平台的限制。
    2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。
    3、h2提供了一个十分方便的web控制台用于操作和管理数据库内容。

二、H2数据库下载和安装

2.1、H2数据库下载

  H2数据库下载地址:http://www.h2database.com/html/download.html

  

  

  下载完成之后,得到如下图所示的压缩包:

  

2.2、H2数据库安装

  H2数据库的安装非常简单,直接将下载下来的压缩包解压缩即可,如下图所示:

  

  这样,H2数据库就算是安装完成了

2.3、测试H2数据库

  首先介绍一下H2数据库的目录结构

  h2
  |---bin
  |    |---h2-1.1.116.jar   //H2数据库的jar包(驱动也在里面)
  |    |---h2.bat              //Windows控制台启动脚本
  |    |---h2.sh                  //Linux控制台启动脚本
  |    |---h2w.bat              //Windows控制台启动脚本(不带黑屏窗口)
  |---docs                       //H2数据库的帮助文档(内有H2数据库的使用手册)
  |---service //通过wrapper包装成服务。
  |---src //H2数据库的源代码
  |---build.bat //windows构建脚本
  |---build.sh //linux构建脚本

  运行h2.bat批处理程序启动H2数据库,如下图所示:

  

  打开浏览器,输入地址:http://localhost:8082访问H2数据库的Web Console,如下图所示:

  

  能够看到这个界面,就说明了H2数据库可以正常使用了。

三、简单使用H2数据库

3.1、登录H2数据库的WebConsole控制台

  

  

  连接测试通过之后,点击【连接】按钮,登录到test数据库的webConsole,如下图所示:

  

3.2、创建表

  复制H2数据库提供的样例SQL脚本,如下图所示:

  

  执行SQL脚本,如下图所示:

  

  SQL脚本执行结果:

  

  全部正常执行成功,此时就可以看到创建好的TEST表,如下图所示:

  

3.3、test数据库文件存放位置说明

  在上面的操作中,我们使用jdbc:h2:~/test这个URL通过JDBC的方式连接上了test数据库,如下图所示:

  

  然后在test数据库中创建了一张TEST表,并对TEST表执行了CRUD操作,那么这个test数据库的文件存放在哪个目录下呢,这里就需要说明一下"~"这个符号在window操作系统下代表什么意思了,在Window操作系统下,"~"这个符号代表的就是当前登录到操作系统的用户对应的用户目录,所以test数据库对应的文件存放在登录到操作系统的用户对应的用户目录当中,比如我当前是使用Administrator用户登录操作系统的,所以在"C:\Documents and Settings\Administrator\.h2"目录中就可以找到test数据库对应的数据库文件了,如下图所示:

  

3.4、创建新的数据库

  

  点击【连接】按钮,就可以进入gacl数据库的控制台了,如下图所示:

  

  此时就可以看到H2自动创建好的gacl数据库和gacl用户,然后在E:\H2目录下也可以找到gacl数据库对应的数据库文件,如下图所示:

  

  同样的,我们也可以在新创建的gacl数据库中创建表,并对表进行CRUD操作,如下图所示:

  

  以上就是H2数据库的简单入门,下一篇博文将讲解如何在java程序中操作H2数据库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java嵌入式数据库H2学习总结(一)——H2数据库入门 的相关文章

  • 按 dbms 类型划分的 Liquibase 变更集

    如何对不同数据库的内容使用相同的更改集
  • 如何检查 h2 数据库健康状况和损坏情况

    我在 JavaFX 8 桌面应用程序中以嵌入模式使用 h2 数据库 并且我为用户开发了一个选项来备份和恢复数据库文件 在旧版本的程序中 我使用了 SQLite 数据库 并且使用 pragmaintegrity check 命令检查数据库文件
  • H2内存数据库初始化数据

    我将 H2 与 Hibernate 结合使用来动态生成内存数据库以进行单元测试 我成功创建了数据库 一切正常 但我有一个问题我不知道如何处理 我需要在执行测试之前将参考数据加载到数据库进行测试 我将此数据存储为 SQL 插入文件 我只需要在
  • H2 表列在双引号中不区分大小写

    我正在开发一个工具 它将数据导入到动态生成的模式中 因此 我几乎无法控制表或列名称的外观 我最近遇到了在表中创建两列名称相同但大小写不同的问题 这个问题可以通过这个最简单的 DDL 操作来演示 CREATE TABLE a c1 integ
  • H2 数据库表上的 SQL 查询抛出 ArrayIndexOutOfBoundsException

    我有一个 H2 数据库 一些查询在该数据库上工作 而其他查询则抛出一个ArrayIndexOutOfBoundsException 例如 SELECT COLUMN 1 FROM MY TABLE works fine SELECT COU
  • 在 Ubuntu 上安装并启动 H2 数据库

    我想在 Ubuntu 12 10 上使用 H2 数据库 并访问该网站并获取了与平台无关的安装文件 安装说明非常字面意思 要安装软件 请运行安装程序或将其解压缩到您选择的目录 我不是 Linux 新手 所以我以前使用过许多常用的安装过程 但我
  • 使用 H2 和 data.sql 的 Spring Boot Data JPA - 找不到表

    我有一个Spring Boot 2 5 0项目 我在用着Spring Data JPA与H2 在记忆中数据库 我想在启动时填充数据data sql文件 但我收到一个未找到表的异常 如果我删除data sql文件中 我可以看到我的实体的表确实
  • H2 数据库和函数位于不同的模式中

    我正在尝试创建一个测试数据库 使用 H2 数据库 我在生产中使用 Oracle 在 h2 中拥有 Oracle 兼容模式似乎很好 但是我在翻译 oracle 构造时遇到了问题 create or replace PACKAGE permis
  • 将特殊字符串转换为H2中的日期

    Oracle 有一个 SQL 函数to date 26 Jul 2016 05 15 58 AM DD Mon YYYY HH MI SS AM 并且它在 H2 中抛出异常 非法模式字符 o 我该如何更改它才能使其在 H2 中工作 等效函数
  • H2 数据库控制台 spring boot 加载被 X-Frame-Options 拒绝

    我正在为开发人员构建一个具有 spring 4 启动安全性和其他功能的骨架项目 在尝试登录数据库控制台并管理我的数据库时使用 H2 我收到以下错误 该页面是空白的 firebug konsole 中有 4 个错误 Load denied b
  • 使用 H2 Web 界面浏览 Corda 数据库表显示同义词错误

    我按照以下说明进行操作this https docs corda net node database html node database浏览 corda 数据库的链接 但是 当我查询表时 出现以下错误 Error Table SYNONY
  • 有 H2 数据库的实际经验吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名称为“scriptDataSourceInitializer”的bean时出错?

    我是学习 Spring Boot Web 的新手 我已经开始学习 spring jpa 数据 我使用 h2 数据库 我想使用插入测试数据 org springframework beans factory BeanCreationExcep
  • SonarQube 内部 H2 数据库的默认凭据?

    我正在运行 SonarQube 5 6 1 并尝试保存我创建的视图 为此 我想看一下 Sonar 根据它自己的自述文件 用于内部嵌入式数据库的 H2 DB 我已经运行了 H2 jar 文件 并且在控制台中能够登录到虚拟数据库 如果 Sona
  • (选择)H2 中的Where()

    我有两种软件 都是Java 一种是MySQL 另一种是H2数据库 我的问题是在 MySQL 中我有这个查询 Select from X where 1 2 3 in select 4 5 6 from Y 但在 H2 中给我这个错误 子查询
  • 带有忽略大小写的 JDBC URL 不适用于 H2 数据库连接

    我试图在 SQL 模式下使用 h2 数据库 我能够创建一个全部大写的模式 并在其下创建一些表 但是 除非我匹配所有大写的架构名称 否则我在休眠上运行的应用程序似乎无法工作 我认为 h2 可以在 JDBC 连接字符串中使用 IGNROECAS
  • H2DB WITH 子句

    我正在使用以下 sql 为方法编写单元测试 WITH temptab i id i name i effective i expires i lefttag i righttag hier id hier dim id parent ite
  • 以编程方式嵌入 Java h2 数据库

    目前我们使用HSQLDB http www hsqldb org 作为嵌入式数据库 但随着数据量的增长 我们会寻找内存占用更少的数据库 德比 JavaDB http developers sun com javadb 目前不是一个选项 因为
  • 改变 H2 中的序列

    我在生产中使用 Postgres 数据库 在测试中使用 H2 我想为现有表创建一个新序列 所以在 Liquibase 中我写了这个
  • 标量子查询包含多行

    我正在使用 H2 数据库并想要移动一些数据 为此 我创建了以下查询 UPDATE CUSTOMER SET EMAIL SELECT service EMAIL FROM CUSTOMER SERVICE AS service INNER

随机推荐

  • Android自定义轮播效果(优化)

    创作背景 本文是继上一篇 Android自定义轮播效果 优化问题而写 希望大家能有顺序的看 优化一 实现自动无线轮播 private class myPagerAdapter extends PagerAdapter Override pu
  • 【知识点】单片机USB转TTL模块的相关知识

    前言 USB转TTL模块的作用就是把电平转换到双方都能识别进行通信 单片机通信接口的电平逻辑和PC机通信接口的电平逻辑不同 PC机上的通信 接口有USB接口 相应电平逻辑遵照USB原则 还有DB9接口 九针口 相应电平逻辑遵照RS 232原
  • MFC的Brush与Pen的使用

    Brush的使用 void CMFCApplicationDlg OnBnClickedOk CDC pDC GetWindowDC CBrush brush1 Must initialize brush1 CreateSolidBrush
  • SonarQube代码质量检测的一点坑

    这里解决的问题有以下几点 1 之前用过sonarqube检测过代码的质量 因其自带的CFamily需要license 故在github上找到相关开源免费的C C 插件 针对特定的sonarqube版本都有相对应的sonar cxx c版本
  • 原生js实现导航条动画

    原生js实现毛毛虫导航 直接上代码
  • 计算机毕业设计选题推荐基于nodejs+Vue360学生宿舍系统

    管理员 首页 个人中心 宿舍信息管理 学生管理 宿舍报修管理 访客信息管理 水电费管理 管理员管理 交流论坛 系统管理 学生 首页 个人中心 宿舍报修管理 水电费管理 前台首页 首页 交流论坛 通知公告 个人中心 后台管理 在线沟通等 目
  • win 10 下cmd命令无法使用ssh命令

    在WIN 10 系统下出现cmd命令无法正常使用ssh命令 提示 ssh不是内部命令 出现这种情况要考虑到是环境变量出现问题 1 鼠标右键单击 我的电脑 进入 属性 2 点击 系统高级设置 选择 环境变量 3 找到 path 点击打开 4
  • Qt中使用QTextStream中文乱码的情况解决

    1 前言 今天在做一个文件编辑器 然后发现读取txt文件的时候 中文的显示乱码 然后在网上查了一些方法 没用 自己摸索了一下 找出了一个办法 2 解决办法 QTextStream in new QTextStream file in gt
  • Csharp:TinyMCE HTML Editor in .NET WindowsForms

  • STM32控制电机简易教程

    STM32控制电机简易教程 包教包会 近期 电赛临近 来补习一下电机的使用方式 使用起来非常的方便 首先是在CUBEMX里面配置一些基本内容 然后是使用PWM去调速 其他的时钟和调试配置就不多说了 然后就是初始化了 同样的 这里使用的是结构
  • 【华为OD机试真题 python】最大报酬【2022 Q4

    题目描述 最大报酬 小明每周上班都会拿到自己的工作清单 工作清单内包含 n 项工作 每项工作都有对应的耗时时间 单位 h 和报酬 工作的总报酬为所有已完成工作的报酬之和 那么请你帮小明安排一下工作 保证小明在指定的工作时间内工作收入最大化
  • 如何在SYSTEM权限下实现屏幕监控

    屏幕监控是远控软件的基本功能之一 现在很多远控程序的服务端通常为DLL形式 通过远程线程注入等方法插入到services svchost等SYSTEM权限的进程中去 而此时常规的屏幕监控就会失效 这是因为与SYSTEM权限进程关联的窗口站
  • Springboot 各种常用配置

    目录 数据库配置 常用 sql 数据源 spring 配置 druid 依赖 基础配置 统一错误处理 统一响应信息处理 Swagger 配置 Spring security 配置 抽象业务配置 实体类的父类 控制器父类 mybatis pl
  • 【统计模型】ToothGrowth数据集双因素方差分析

    目录 ToothGrowth数据集双因素方差分析 一 研究目的 二 数据来源和相关说明 三 描述性分析 3 1 样本描述 3 2 样本均值 3 3 箱线图 四 数学建模 五 结论与建议 5 1 结论 5 2 建议 六 代码 ToothGro
  • 111. 二叉树的最小深度

    给定一个二叉树 找出其最小深度 最小深度是从根节点到最近叶子节点的最短路径上的节点数量 说明 叶子节点是指没有子节点的节点 Definition for a binary tree node public class TreeNode in
  • android so劫持,防劫持SDK

    防劫持SDK 一 产品简介 防劫持SDK是具备防劫持兼防截屏功能的SDK 可有效防范恶意程序对应用进行界面劫持与截屏的恶意行为 二 iOS版本 2 1 环境要求条目说明兼容平台iOS 8 0 开发环境XCode 4 0 CPU架构armv7
  • 四、设计工程

    软件设计开始于软件需分析和规约之后 是把需求转化为软件系统的重要环节 软件需求解决 做什么 的问题 软件设计解决 怎么做 的问题 一 概述 早期设计工程分为概要设计和详细设计 概要设计 将需求转换为数据结构 软件体系结构及其接口 详细设计或
  • 另一种排序方法 C#

    private void button27 Click object sender EventArgs e int array new int 10 3 2 4 90 50 20 34 22 49 int newArray new int
  • 125道Python面试题总结

    Pyhton面试宝典 提高编程能力的最有效办法就是 敲代码 1 一行代码实现1 100之和 res sum range 1 101 print res 5050 Python精华知识点手册 完整版 下载 2 如何在一个函数内部修改全局变量
  • Java嵌入式数据库H2学习总结(一)——H2数据库入门

    只为成功找方法 不为失败找借口 Java嵌入式数据库H2学习总结 一 H2数据库入门 一 H2数据库介绍 常用的开源数据库有 H2 Derby HSQLDB MySQL PostgreSQL 其中H2和HSQLDB类似 十分适合作为嵌入式数