H2介绍

  H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。

  H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。

  官网地址:http://www.h2database.com

  H2是Java SQL数据库。H2的主要特点是:

  • 非常快,开源,JDBC API
  • 嵌入式和服务器模式; 内存数据库
  • 基于浏览器的Console应用
  • 占地面积小:大约2 MB的jar文件大小

  H2用途

    H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。

    它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。

    H2的第三个用处是作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端MySQL/Oracle的一个缓冲层,缓存一些不经常变化但需要频繁访问的数据,比如字典表、权限表。不过这样系统架构就会比较复杂了。

  H2运行模式

    H2支持三种不同的运行模式,以适用于更多不同的应用场景。

  1、嵌入式模式:

    嵌入式模式下,应用与H2运行于同一个JVM中,H2被应用启动。该模式也是性能最好的模式,也是官方推荐的模式。

  2、服务器模式

    服务器模式下,H2被H2 Server启动(独立于应用的JVM),应用与数据分离,应用使用远程连接(如JDBC)访问数据库。类似于传统数据库的部署,服务器可以与应用部署与同一台机器,也可以部署与另一台机器。

    实际上,H2 Server本身也是使用嵌入式模式来启动运行H2 Database的。显然,由于服务器模式是通过远程连接访问数据,其性能也要低于嵌入式模式。

  3、混合模式

    该模式是嵌入式模式与混合模式的融合。一个应用启动嵌入式模式的H2 Database,其他应用可以将其作为服务器模式来远程访问。

H2简单使用

  1、H2数据库下载,打开官网(http://www.h2database.com)下载

    

  2、解压下载包,即可使用,解压后目录如下

    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构建脚本

  3、windows环境下运行h2.bat,linux环境下运行h2.sh,打开控制台

  4、windows环境下,运行文件后自动打开浏览器,地址:http://本地ip:8082

    

  5、选择中文语言,并点击连接,自动创建test数据库,数据库文件在~目录中,~代表用户自己目录

    

  6、复制测试脚本sql,并执行

    

    7、运行结果如下:

      

H2使用JDBC连接

  1、运行

  2、新建maven项目,引入jar包

 <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
</dependency>

  3、编辑JDBC测试类

 package com.test.hsqldb;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* Hello world!
*
*/
public class App {
public static void main(String[] args) throws SQLException, ClassNotFoundException { // 加载H2 DB的JDBC驱动
Class.forName("org.h2.Driver"); // 链接数据库,自动在~创建数据库test,得到联接对象 connection
String url = "jdbc:h2:~/test";
Connection con = DriverManager.getConnection(url, "sa", ""); // 新建数据表
String ctreateTable = "DROP TABLE test IF EXISTS; create table test(id integer,name VARCHAR(22) )";
Statement createStatement = con.createStatement();
long f1 = createStatement.executeUpdate(ctreateTable);
System.out.println("创建表:" + f1); // 插入数据
String insertSql = "INSERT INTO test VALUES(1,'小明')";
Statement insertStatement = con.createStatement();
long f2 = insertStatement.executeUpdate(insertSql);
System.out.println("插入数据:" + f2); // 查询数据
String selectSql = "select id,name from test";
PreparedStatement prepareStatement = con.prepareStatement(selectSql);
// 发送SQL 返回一个ResultSet
ResultSet rs = prepareStatement.executeQuery(); // 编历结果集
while (rs.next())// 从数据库的取一行数据,是否还有下一行
{
int id = rs.getInt(1); // 从1开始
String name = rs.getString(2);
System.out.println("id:" + id + "\t名称:" + name);
} // 关闭连接
con.close(); }
}

  4、运行测试类,结果如下:

    

  

【DataBase】H2 DateBase的简单使用的更多相关文章

  1. 【DataBase】H2 DateBase的拓展使用

    连接模式 支持以下连接模式: 嵌入模式(使用JDBC的本地连接) 服务器模式(使用JDBC或ODBC over TCP / IP进行远程连接) 混合模式(同时本地和远程连接) 嵌入模式 在嵌入模式下, ...

  2. 用EF DataBase First做一个简单的MVC3报名页面

    使用EF DataBase First做一个简单的MVC3报名网站 ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO. ...

  3. If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.

    学习Spring Boot 过程中遇到了下列这个问题 Description: Failed to configure a DataSource: 'url' attribute is not spe ...

  4. h2数据库的简单使用

    1.登录H2数据库的WebConsole控制台 2.设置数据库连接 3.连接测试通过之后,点击[连接]按钮,登录到test数据库的webConsole 4.创建表 复制H2数据库提供的样例SQL脚本, ...

  5. Consider the following: If you want an embedded database (H2, HSQL or Der...

    这个坑把java进程干掉就可以了,因为占用了 Description: Failed to configure a DataSource: 'url' attribute is not specifi ...

  6. embedded database (H2, HSQL or Derby), please put it on the classpath

    Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded data ...

  7. 【DataBase】H2 DateBase与项目集成

    本例介绍H2与web项目的集成 项目启动H2数据库 1.新建Maven Web项目,参考:[Maven]Eclipse 使用Maven创建Java Web项目 2.引入h2的jar包依赖 <de ...

  8. 基于Swt、ffmpeg、jacob、vlc、SApi、h2技术编写简单的旁白生成器

    一.简介: 前一段时间尝试录制了几集3D编程方面的视频教程,我发现录制时最大的障碍是让脑中的思考.手上的操作和嘴里的解说保持同步,一旦三个"线程"中有一个出错,就必须停下来重新录制 ...

  9. 【DataBase】Hsqldb的简单使用

    介绍 HSQLDB是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的.具有Server模式,每个程序需要不同的命令来运行. HyperSQL ...

随机推荐

  1. 评估预测函数(2)---对hypothesis进行评估

    当有多个features时,无法通过图像来评估hypothesis 当我们的hypothesis只有一个features时,可以通过观察它的图像来看它是否overfitting,但是如果我们有多个fe ...

  2. HTTP的幂等性

    转自: https://www.jianshu.com/p/234cf2e96832 理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式.无论是在大型互联网应用还 ...

  3. Homebrew 更新慢问题

    cd "$(brew --repo)" git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/hom ...

  4. 项目后端 - 虚拟环境搭建 | pycharm使用虚拟环境

    虚拟环境的搭建 优点 1.使不同应用开发环境相互独立 2.环境升级不影响其他应用,也不会影响全局的python环境 3.防止出现包管理混乱及包版本冲突 windows 安装 # 建议使用pip3安装到 ...

  5. Apache Kylin在4399大数据平台的应用

    来自:AI前线(微信号:ai-front),作者:林兴财,编辑:Natalie作者介绍:林兴财,毕业于厦门大学计算机科学与技术专业.有多年的嵌入式开发.系统运维经验,现就职于四三九九网络股份有限公司, ...

  6. [hdu contest 2019-07-29] Azshara's deep sea 计算几何 动态规划 区间dp 凸包 graham扫描法

    今天hdu的比赛的第一题,凸包+区间dp. 给出n个点m个圆,n<400,m<100,要求找出凸包然后给凸包上的点连线,连线的两个点不能(在凸包上)相邻,连线不能与圆相交或相切,连线不能相 ...

  7. P1453 城市环路

    题目背景 一座城市,往往会被人们划分为几个区域,例如住宅区.商业区.工业区等等.B市就被分为了以下的两个区域——城市中心和城市郊区.在着这两个区域的中间是一条围绕B市的环路,环路之内便是B市中心. 题 ...

  8. Python逆向(五)—— Python字节码解读

    一.前言 前些章节我们对python编译.反汇编的原理及相关模块已经做了解读.读者应该初步掌握了通过反汇编获取python程序可读字节码的能力.python逆向或者反汇编的目的就是在没有源码的基础上, ...

  9. CSS3 clip-path & clip-path 打破矩形设计的限制

    CSS 形状模块标准1(CSS Shapes Module Level 1)这个规范打破了 WEB 中的矩形盒模型的限制,并且将网页设计提升到一个新的高度. 关于 Shapes 规范 shape-ou ...

  10. 【caffe Layer】代码中文注释

    src/caffe/proto/caffe.proto 中LayerParameter部分 // NOTE // Update the next available ID when you add a ...