前言 :
前段时间想做个小应用,之所以说下自然就是占用资源少,简易安装,使用方便。。。。
文件做数据存储管理的话相对有点乱,个人感觉;要是有类似于在移动端常用的SQLlite这样的一款轻型的数据库就好了,后来看了看觉得 H2 值得一试。
H2database是一款用java语言编写的开源数据库。 下载地址:http://www.h2database.com/
快速入门的话原网站介绍很详细:http://www.h2database.com/html/tutorial.html
我就说一说注意点吧:
<1> 启动:
下载安装包之后解压,进入bin目录下可以看到 h2.sh 启动文件也可以使用如下命令(指定参数设置)
>>设置参数启动: java -jar h2-1.4.192.jar -webAllowOthers -webSSL -tcpAllowOthers -tcpPort 8083 &
[zhang@XXX bin]$ java -jar h2-1.4.192.jar -webAllowOthers -webSSL -tcpAllowOthers -tcpPort 8083 & [1] 32023 [zhang@XXX bin]$ Web Console server running at https://10.163.239.119:8082 (others can connect) Failed to start a browser to open the URL https://10.163.239.119:8082: Browser detection failed and system property h2.browser not set TCP server running at tcp://10.163.239.119:8083 (others can connect) PG server running at pg://10.163.239.119:5435 (only local connections)
默认情况下,会指定http端口8082 ,启动之后 访问 https://121.42.35.105:8082 此处开启可SSL加密访问
不知道怎么设置,可以查看Server运行时需要的参数可以:
>> java -cp h2-1.4.192.jar org.h2.tools.Server -help 查看可用参数
<2> H2服务模式:
web server:此种运行方式支持使用浏览器访问H2 Console
TCP server:支持客户端/服务器端的连接方式
PG server:支持PostgreSQL客户端
http访问后,注意初次设置的密码(Test Connection)就是以后的密码,换密码会提示密码错误(Wrong user name or password [28000-192] 28000/28000 (Help))
启动tcp服务连接字符串示例:
jdbc:h2:tcp://localhost/~/test 使用用户主目录
jdbc:h2:tcp://localhost//home/data/test 使用绝对路径 (注意双斜杠,否则总提示访问路径不对)
连接字符串参数:
DB_CLOSE_DELAY:要求最后一个正在连接的连接断开后,不要关闭数据库
MODE=MySQL:兼容模式,H2兼容多种数据库,该值可以为:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL
AUTO_RECONNECT=TRUE:连接丢失后自动重新连接
AUTO_SERVER=TRUE:启动自动混合模式,允许开启多个连接,该参数不支持在内存中运行模式
TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:输出跟踪日志到控制台或文件, 取值0为OFF,1为ERROR(默认值),2为INFO,3为DEBUG
SET TRACE_MAX_FILE_SIZE mb:设置跟踪日志文件的大小,默认为16M
登陆后就可以看提示操作了,注意一下:
如果URL中指定的数据库不存在将自动创建;创建数据库的用户将成为该数据库的管理员。
<3> Web 开发使用
内嵌模式
1、将数据库放在tomcat等服务器的共享lib目录,server lib目录或classpath中使用 Servlet Listener 启动
2、使用Servlet Listener方式
添加 h2*.jar 在web应用程序中,同时在 web.xml file (between context-param
and the filter
section)添加如下配置
org.h2.server.web.DbStarter
3、Spring中h2 TCP Server 配置
或者初始化代码操作:
Class.forName("org.h2.Driver");
Connection conn = DriverManager.
getConnection("jdbc:h2:~/test", "账号", "密码");
// 注意: 在本数据库中用户名是不区分大小写的, 密码区分大小写。
初涉简单就这么多,至于备份数据安全操作等以后再探究吧
原文链接: http://zl378837964.iteye.com/blog/2310019