H2数据库攻略之二-应用H2

来源:互联网 发布:在手机上装修淘宝店铺 编辑:程序博客网 时间:2024/05/17 07:45

本文我们介绍如何使用H2数据库。

准备工作

1、h2-2014-04-05.zip 下载地址:http://www.h2database.com/html/download.html

这里写图片描述

2、解压文件,这里以%H2_HOME%表示为解压的文件目录。运行%H2_HOME%\bin\h2.bat 将会自动打开下面网址。(请确认是否安装了jdk,并设置了JAVA_HOME环境变量)
http://192.168.2.105:8082/login.do?jsessionid=ebd745fe17cefcc96709e73924802d5e

这里写图片描述

3、点击 connect ,登录。

这里写图片描述

4、执行上图中红色部分sql语句,成功创建test表。

这里写图片描述

因为没有指定数据库文件位置,会自动输出到输出到C:\Users\Administrator下。

这里写图片描述

项目实践

H2文件结构

%H2_HOME%
-h2
-bin
h2-1.3.154.jar //jar包
h2.bat //Windows控制台启动脚本
h2.sh //Linux控制台启动脚本
h2w.bat //Windows控制台启动脚本(不带黑屏窗口)
+docs 帮助文档
+service //通过wrapper包装成服务。
+src //源代码
build.bat windows构建脚本
build.sh linux构建脚本

在java项目中应用H2

H2支持Embedded,server和in-memory模式以及内存模式。

一、Embedded模式

1.新建java project工程 H2Test。

这里写图片描述

2、%H2_HOME%\bin\h2-1.3.154.jar 复制到 \H2Test\lib下,并加入工程引用。
3、新建Generic H2 (Embedded)数据库,指定:jdbc:h2:F:\2013-2014\Eclipse-J2EE\workspace\H2Test\db\test。

这里写图片描述

4、然后执行上面的test sql语句,来创建一个test表。

这里写图片描述

创建完成后,在项目中会出现db目录。

这里写图片描述

5、新建 TestH2类 主要代码

public static void main(String[] a)  throws Exception {    Class.forName("org.h2.Driver");    Connection conn = DriverManager.    getConnection("jdbc:h2:F:\\2013-2014\\Eclipse-J2EE\\workspace\\H2Test\\db\\test", "sa", "");  // add application code here      Statement stmt = conn.createStatement();      ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");     while(rs.next()) {          System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));  } conn.close(); }

控制台打印出:1,Hi

这里写图片描述

二、server模式

1、直接将jdbc url 改为:jdbc:h2:tcp://localhost/~/test 就行了。因为我们在上面第一步的时候已经在C:\Users\Administrator创建了test数据库。
你也可以再创建新的数据库,默认都是保存在C:\Users\Administrator下的。
注意:你必须启动服务:%H2_HOME%\bin\h2.bat 或者 以服务模式启动:%H2_HOME%\service\0_run_server_debug.bat ,里面有好几个脚本把H2部署为服务模式。每次机器启动后自动启动H2服务。
2、新建 TestServerH2类 主要代码

public static void main(String[] a)    throws Exception {   Class.forName("org.h2.Driver");   Connection conn = DriverManager.       getConnection("jdbc:h2:tcp://localhost/~/test", "sa", "sa");   // add application code here   Statement stmt = conn.createStatement();   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");       while(rs.next()) {        System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));    }   conn.close(); }

运行的结果和上面一样。

三、内存模式(数据只保存在内存中)

1、新建 TestMemH2类 主要代码

public static void main(String[] a)    throws Exception {   Class.forName("org.h2.Driver");   Connection conn = DriverManager.       getConnection("jdbc:h2:tcp://localhost/mem:test2", "sa", "sa");   // add application code here   Statement stmt = conn.createStatement();   stmt.executeUpdate("CREATE TABLE TEST_MEM(ID INT PRIMARY KEY,NAME VARCHAR(255));");   stmt.executeUpdate("INSERT INTO TEST_MEM VALUES(1, 'Hello_Mem');");   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST_MEM");       while(rs.next()) {        System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));    }   conn.close(); }

控制台打印出:1,Hello_Mem

这里写图片描述

0 0
原创粉丝点击