H2数据库

1. 什么是H2数据库

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

  • 免费、开源、快速;

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

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

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

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

  和其它的数据库相比较

这里写图片描述

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

这里写图片描述

2. 资源链接

  H2官网地址

  H2的demo下载地址

  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倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值