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
访问gerrit的h2数据库步骤:1、从 https://code.google.com/p/gerrit/downloads/list 页面下载gerrit的war包到某个目录
2、数据库准备,懒得设置用了默认的H2 DB
3、创建gerrit2用户,初始化
sudo adduser gerrit2
sudo su gerrit2
java -jar gerrit.war init -d /home/gerrit2/site
一些交互式提问,默认或自定义,同样懒得设置apache,认证用了 development_become_any_account 选项,反向代理没有;
设置完成就自动启动了~如果没有启动手动 ./site/bin/gerrit.sh start
4、创建标准 后台服务连接
sudo ln -snf `pwd`/site/bin/gerrit.sh /etc/init.d/gerrit.sh
sudo ln -snf ../init.d/gerrit.sh /etc/rc3.d/S110gerrit
sudo ln -snf ../init.d/gerrit.sh /etc/rc5.d/S110gerrit
5、登陆http://10.20.20.XX:9080,页面右上角点击become :
注册用户 fullname emailaddress name ssh公钥(.ssh/id_rsa.pub)设置保存,
设置保存后,在客户端验证一下,命令及输出如下:
[$name@$hostname ~]$ ssh -p 29418 $name@10.20.20.XX
****Welcome to Gerrit Code Review****
Hi $fullname, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://$name@$hostName.$domainname:29418/REPOSITORY_NAME.git
Connection to 10.20.20.XX closed.
6、从gerrit服务器,clone代码工
git clone ssh://$name@10.20.20.XX:29418/$repoName.git
7、进入项目目录cd $repoName 安装hook钩子的目的是在提交信息中自动创建 'Change-Id:' 标签
scp -p -P 29418 $name@10.20.20.XX:hooks/commit-msg .git/hooks/
8、修改提交
9、push 到gerrit服务器
git push origin HEAD:refs/for/$branchName
#直接git push会失败,原因还不知道~~ ~~
10、push成功后web页面All->open和My->changes标签下面,就可以看到提交的修改了
11、web的review没有approve选项,需要在project的accecss中增加相应权限还有后面的verify权限也是类似 *** 作
简单来说就是用jdbc:h2:mem:h2db来建立内存模式,并建表,然后jdbc:h2:tcp://192.168.20.141:8082/mem:h2db来访问上面的内存数据库
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 = "8082"
private static String sourceURL1 = "jdbc:h2:mem:h2db"
private static String sourceURL2 = "jdbc:h2:tcp://192.168.20.141:8082/mem:h2db"
private String user = "shorturl"
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(sourceURL1,user, password)
Statement stat = conn.createStatement()
// insert data
stat.execute("CREATE MEMORY Table TEST(NAME VARCHAR)")
stat.execute("INSERT INTO TEST VALUES('Hello World')")
//stat.execute("delete mappedURL")
// 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 void useH2i() {
try {
Class.forName("org.h2.Driver")
//Connection conn = DriverManager.getConnection("jdbc:h2:" + dbDir+"AUTO_SERVER=TRUEMVCC=TRUE",user, password)
Connection conn = DriverManager.getConnection(sourceURL2,user, password)
Statement stat = conn.createStatement()
// use data
ResultSet result = stat.executeQuery("select name from test")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)