H2数据库

来源:互联网 发布:三菱伺服产品选型软件 编辑:程序博客网 时间:2024/04/28 15:55

1. 什么是H2数据库

  H2数据库是用java代码编写的免费开源的内存型数据库,H2数据库具有的特点如下:

  • 免费、开源、快速;

  • 嵌入式的数据库服务器,支持集群

  • 提供JDBC、ODBC访问接口,提供基于浏览器的控制台管理程序

  • Java编写,可使用GCJ和IKVM.NET编译

  • 短小精干的软件,1M左右

  和其它的数据库相比较

这里写图片描述

  和其它的内存数据库相比较

这里写图片描述

2. 资源链接

  H2官网地址

  • H2 Database Engine

  H2的demo下载地址

  • H2

  H2的官方参考文档

  h2数据库的安装包是默认自带参考文档的,该文档就在安装目录下的docs文件夹下。

3. 浏览器客户端的使用

  h2的数据库安装比较的简单,这里我就不做过多的介绍,在安装完成后,点击【开始】菜单中的H2的Console菜单,打开h2的控制台窗口,如下图所示:

这里写图片描述

  在该窗口打开的同时,浏览器也会相应的打开网页版的H2数据库连接界面,如下所示:

这里写图片描述

  在该界面中,我们没必要做任何修改操作,直接点击【测试链接】按钮,看看在测试中是否会连接成功。如果测试成功,在页面下方会出现相应的连接成功提示信息

这里写图片描述

  连接测试成功后,点击【连接】按钮,以此来完成数据库的登录操作。

  登录后的界面如下所示:

这里写图片描述

  H2的浏览器客户端的使用非常的简单,由于H2数据库的语法是高度类似于MySQL的,所以说只要是懂得使用MySQL的人都能很容易的上手,除此之外,H2数据库还提供了操作的SQL语言样例,该样例就在登录H2浏览器客户端的主页面下方有提供,如下:

这里写图片描述

  直接复制该区域中的SQL语句,并将其粘贴到【执行】下的文本域中,点击【执行】按钮即可。

4. 连接数据库驱动

  连接的代码如下:

package com.lyc;import org.apache.log4j.Logger;import org.junit.Test;import java.sql.*;/** * Created by HP on 2017/9/10. */public class TestH2Connection {    private static final Logger log = Logger.getLogger(TestH2Connection.class);    @Test    public void testH2Connection() throws ClassNotFoundException, SQLException {        Class.forName("org.h2.Driver");        Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");        Statement stmt = conn.createStatement();        ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");        while(rs.next()) {            log.info("ID:" + rs.getInt("ID") + "," + "NAME:" + rs.getString("NAME"));        }        rs.close();        stmt.close();        conn.close();    }}

  上述的代码在我的H2的demo中有,直接将该项目下载下来在本地运行即可。

5. 连接数据库连接池

  连接数据库连接池的代码如下:

package com.lyc;import org.apache.log4j.Logger;import org.h2.jdbcx.JdbcConnectionPool;import org.junit.Test;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * Created by HP on 2017/9/10. */public class TestH2JdbcConnectionPool {    private static final Logger log = Logger.getLogger(TestH2JdbcConnectionPool.class);    @Test    public void testH2JdbcConnectionPool() throws SQLException {        JdbcConnectionPool cp = JdbcConnectionPool.create(                "jdbc:h2:~/test", "sa", "");        /*for (String sql : args) {            Connection conn = cp.getConnection();            conn.createStatement().execute(sql);            conn.close();        }   */        Connection conn = cp.getConnection();        Statement stmt = conn.createStatement();        ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");        while(rs.next()) {            log.info("ID:" + rs.getInt("ID") + "," + "NAME:" + rs.getString("NAME"));        }        rs.close();        stmt.close();        conn.close();        cp.dispose();    }}

  在连接数据库时,官方的推荐是采用第二种,也就是采用数据库连接池的方式进行的连接,因为这样做的好处是连接速度比较快,比传统的连接方式要快上至少2倍。

原创粉丝点击