h2调用mysql数据_H2数据库使用 - Mr&Cheng的个人空间 - OSCHINA - 中文开源技术交流社区...

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

H2的优势:

1、h2采用纯Java编写,因此不受平台的限制。

2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。

3、性能和功能的优势

H2比HSQLDB的最大的优势就是h2提供了一个十分方便的web控制台用于操作和管理数据库内容,这点比起HSQLDB的swing和awt控制台实在好用多了。

H2和各数据库特征比较。

f8ef522920df6b1f91f06add3ed6d94e.png

准备工作

809ca5d9e6d8ed7d785ad2bbc052aab5.png

3、点击 connect ,登录。

93babf61525f39d1d51fb9f6ab738526.png

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

f6be731b787b4fd65db9ef73197dbe46.png

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

c7e2b10d95dcf6aa842ab89f79b75a68.png

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

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

Embedded模式

1、新建java project工程 H2Test。

520483961497280d9ccba2d0b4697303.png

2、%H2_HOME%\bin\h2-1.3.154.jar 复制到 \H2Test\lib下,并加入工程引用。

3、新建Generic H2 (Embedded)数据库,指定:JDBC ,然后执行上面的test sql语句,来创建一个test表。

edd68b2db8bbd605b0bea9401200070b.png

4、新建 TestH2类 主要代码

public static void main(String[] a)

throws Exception {

Class.forName("org.h2.Driver");

Connection conn = DriverManager.

getConnection("jdbc:h2:E:\\research\\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

1d4999895b391ba5aacdf6019b31a073.png

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", "");

// 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", "");

// 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

42033bc396ebcf55a75535bc177cead7.png

2、上面的 URL 改为 jdbc:h2:~/mem:test 也是可以的。如果是localhost必须启动服务。

资源下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值