如何用Java程序启动H2数据库(完整代码)?

如何用Java程序启动H2数据库(完整代码)?,第1张

package test

import java.sql.Connection

import java.sql.DriverManager

import java.sql.ResultSet

import java.sql.SQLException

import java.sql.Statement

import org.h2.tools.Server

public class H2Demo {

private Server server

private String port = "9094"

private String dbDir = "./h2db/sample"

private String user = "zhoujiang"

private String password = "123456"

public void startServer() {

try {

System.out.println("正在启动h2...")

server = Server.createTcpServer(

new String[] { "-tcpPort", port }).start()

} catch (SQLException e) {

System.out.println("启动h2出错:" + e.toString())

// TODO Auto-generated catch block

e.printStackTrace()

throw new RuntimeException(e)

}

}

public void stopServer() {

if (server != null) {

System.out.println("正在关闭h2...")

server.stop()

System.out.println("关闭成功.")

}

}

public void useH2() {

try {

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

Connection conn = DriverManager.getConnection("jdbc:h2:" + dbDir,

user, password)

Statement stat = conn.createStatement()

// insert data

stat.execute("CREATE TABLE TEST(NAME VARCHAR)")

stat.execute("INSERT INTO TEST VALUES('Hello World')")

// use data

ResultSet result = stat.executeQuery("select name from test ")

int i = 1

while (result.next()) {

System.out.println(i++ + ":" + result.getString("name"))

}

result.close()

stat.close()

conn.close()

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

public static void main(String[] args) {

H2Demo h2 = new H2Demo()

h2.startServer()

h2.useH2()

h2.stopServer()

System.out.println("==END==")

}

}

H2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库

H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于 *** 作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。

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

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

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

扩展资料:

H2数据库运行方式:

1、内存模式

数据库只在内存中运行,关闭连接后数据库将被清空,适合测试环境,连接字符串:jdbc:h2:mem:DBNameDB_CLOSE_DELAY=-1,如果不指定DBName,则以私有方式启动,只允许一个连接。

2、嵌入式

数据库持久化存储为单个文件。连接字符串:jdbc:h2:file:~/.h2/DBNameAUTO_SERVER=TRUE。~/.h2/DBName表示数据库文件的存储位置,如果第一次连接则会自动创建数据库。

3、服务模式

H2支持三种服务模式:web server:此种运行方式支持使用浏览器访问H2 Console。

CP server:支持客户端/服务器端的连接方式。

PG server:支持PostgreSQL客户端。

参考资料:百度百科-H2

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

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

http://192.168.140.1:8082/login.jsp?jsessionid=244e36a683f97f0d4f3b000f33530ed1

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9577203.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存