h2数据库如何连接_怎样远程连接数据库

h2数据库如何连接_怎样远程连接数据库H2数据库支持如下3种连接模式: 内嵌模式(通过JDBC进行本地连接,应用和数据库在同一个JVM中) 服务器模式(通过JDBC或ODBC或TCP/IP进行远程连接) 混合模式(同时支持本地和远程连接)数据库连接URL说明:TopicURLFormatandExamples嵌入式(本地)连接jdb

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

H2数据库支持如下3种连接模式:

  内嵌模式(通过JDBC进行本地连接,应用和数据库在同一个JVM中)

  服务器模式(通过JDBC或ODBC或TCP/IP进行远程连接)

  混合模式(同时支持本地和远程连接)


数据库连接URL说明:

Topic

URL Format and Examples

嵌入式(本地)连接

jdbc:h2:[file:][<path>]<databaseName>
jdbc:h2:~/test
jdbc:h2:file:/data/sample
jdbc:h2:file:C:/data/sample (Windows only)

内存数据库(私有)

jdbc:h2:mem:

内存数据库(被命名)

jdbc:h2:mem:<databaseName>
jdbc:h2:mem:test_mem

使用TCP/IP的服务器模式(远程连接)

 

jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
jdbc:h2:tcp://localhost/~/test
jdbc:h2:tcp://dbserv:8084/~/sample

使用SSL/TLS的服务器模式(远程连接)

 

jdbc:h2:ssl://<server>[:<port>]/<databaseName>
jdbc:h2:ssl://secureserv:8085/~/sample;

使用加密文件

jdbc:h2:<url>;CIPHER=[AES|XTEA]
jdbc:h2:ssl://secureserv/~/testdb;CIPHER=AES
jdbc:h2:file:~/secure;CIPHER=XTEA

文件锁

jdbc:h2:<url>;FILE_LOCK={NO|FILE|SOCKET}
jdbc:h2:file:~/quickAndDirty;FILE_LOCK=NO
jdbc:h2:file:~/private;CIPHER=XTEA;FILE_LOCK=SOCKET

仅打开存在的数据库

jdbc:h2:<url>;IFEXISTS=TRUE
jdbc:h2:file:~/sample;IFEXISTS=TRUE

当虚拟机退出时并不关闭数据库

jdbc:h2:<url>;DB_CLOSE_ON_EXIT=FALSE

用户名和密码

jdbc:h2:<url>[;USER=<username>][;PASSWORD=<value>]
jdbc:h2:file:~/sample;USER=sa;PASSWORD=123

更新记入索引

jdbc:h2:<url>;LOG=2
jdbc:h2:file:~/sample;LOG=2

调试跟踪项设置

jdbc:h2:<url>;TRACE_LEVEL_FILE=<level 0..3>
jdbc:h2:file:~/sample;TRACE_LEVEL_FILE=3

忽略位置参数设置

jdbc:h2:<url>;IGNORE_UNKNOWN_SETTINGS=TRUE

指定文件读写模式

jdbc:h2:<url>;ACCESS_MODE_LOG=rws;ACCESS_MODE_DATA=rws

Zip文件中的数据库

jdbc:h2:zip:<zipFileName>!/<databaseName>
jdbc:h2:zip:~/db.zip!/test

兼容模式

jdbc:h2:<url>;MODE=<databaseType>
jdbc:h2:~/test;MODE=MYSQL

自动重连接

jdbc:h2:<url>;AUTO_RECONNECT=TRUE
jdbc:h2:tcp://localhost/~/test;AUTO_RECONNECT=TRUE

自动混合模式

jdbc:h2:<url>;AUTO_SERVER=TRUE
jdbc:h2:~/test;AUTO_SERVER=TRUE

更改其他设置

jdbc:h2:<url>;<setting>=<value>[;<setting>=<value>…]
jdbc:h2:file:~/sample;TRACE_LEVEL_SYSTEM_OUT=3

要想H2数据库能远程连接,必须设置其允许远程连接。

我们先来看一下H2数据库的默认设置:

h2数据库如何连接_怎样远程连接数据库


由上图可知,默认情况下H2数据库的TCP服务端口为9092,客户端的端口为8082,PG服务的端口为5435。

集成H2到String中,配置H2数据库允许远程连接。(这种配置只适合嵌入式的配置,当配置了如下代码时,相当于已经启动了一个H2服务。)

<!-- Spring中h2 TCP Server 配置 -->
<bean id="h2Server" class="org.h2.tools.Server"
       factory-method="createTcpServer" init-method="start" destroy-method="stop">
       <constructor-arg value="-tcp,-tcpAllowOthers,-tcpPort,9092" />
</bean>


修改h2.bat文件

@java -cp "h2-1.4.190.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Console %* -tcpAllowOthers
@if errorlevel 1 pause


配置连接参数:

#  h2
#=============================
jdbc.driver=org.h2.Driver
jdbc.url=jdbc:h2:tcp://192.168.1.121:9092/~/test
#jdbc.url=jdbc:h2:~/test
jdbc.username=sa
jdbc.password=

hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.use_sql_comments=false




config.initialPoolSize=10
config.minPoolSize=20
config.maxPoolSize=350
config.maxIdleTime=70
config.acquireIncrement=5           
config.idleConnectionTestPeriod=60
config.acquireRetryAttempts=5

数据源配置:

<!-- 数据源配置 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
	<property name="driverClass">
		<value>${jdbc.driver}</value>
	</property>
	<property name="jdbcUrl">
		<value>${jdbc.url}</value>
	</property>
	<property name="user">
		<value>${jdbc.username}</value>
	</property>
	<property name="password">
		<value>${jdbc.password}</value>
	</property>
	 <property name="initialPoolSize">
		<value>${config.initialPoolSize}</value>
	</property>
	<property name="minPoolSize">
		<value>${config.minPoolSize}</value>
	</property>
	<property name="maxPoolSize">
		<value>${config.maxPoolSize}</value>
	</property>
		
	<property name="automaticTestTable">
		<value>${config.automaticTestTable}</value>
	</property>		 
	<property name="checkoutTimeout">
		<value>5000</value>
	</property>
	<property name="maxIdleTime">
		<value>${config.maxIdleTime}</value>
	</property>
	<property name="acquireRetryAttempts">
		<value>${config.acquireIncrement}</value>
	</property>
	<property name="acquireIncrement">
		<value>${config.acquireIncrement}</value>
	</property> 
</bean>


启动服务端h2数据库,经测试本方式连接成功。

若想让浏览器也允许远程连接可修改H2\src\tools\WEB-INF下的web.xml文件

<servlet>
        <servlet-name>H2Console</servlet-name>
        <servlet-class>org.h2.server.web.WebServlet</servlet-class>
        <init-param>
            <param-name>webAllowOthers</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>trace</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182990.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 3.1 代价函数[通俗易懂]

    3.1 代价函数[通俗易懂]3.1代价函数(costfunction)    代价函数有助于将最可能的线性函数与我们的数据相拟合。在线性回归中,我们有一个这样的数据集,m表示训练集样本数,而我们的假设函数,也就是我们用来进行预测的函数,是图中所示的线性函数形式。    接下来,我们引入一些术语,Ɵ0和Ɵ1,这些Ɵi我们将它称作为模型参数,我们要做的就是如何去选择这两个参数。对于不同的Ɵ0和Ɵ1,我们会得到不同

  • 美军打掉德国炮兵阵地的电影_英雄连2怎么找炮兵阵地

    美军打掉德国炮兵阵地的电影_英雄连2怎么找炮兵阵地司令部的将军们打算在 N×M 的网格地图上部署他们的炮兵部队。一个 N×M 的地图由 N 行 M 列组成,地图的每一格可能是山地(用 H 表示),也可能是平原(用 P 表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响

  • javascript中条件运算符判断成年_c语言中条件运算符

    javascript中条件运算符判断成年_c语言中条件运算符条件运算符也称三木运算符,三元运算符;例题:// 是否年满18岁 varnum=+prompt(‘请输入年龄’); num>=18&&num>0?alert(‘你已成年’):alert(‘你未满18岁’); // 从两个数中找最大值 varnum1=+prompt(‘输入第一个数字’); varnum2=+prompt(‘输入…

  • Odin Inspector 系列教程 — Hide If Attribute[通俗易懂]

    Odin Inspector 系列教程 — Hide If Attribute[通俗易懂]HideIfAttribute用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。传一个属性的名称,此属性的值如果为true或者部位null,则隐藏此属性[HideIf(“IsToggled”)]publicVector3HiddenWhenToggled;[HideIf(“Som…

  • Android 蓝牙开发(一)蓝牙通信「建议收藏」

    Android 蓝牙开发(一)蓝牙通信「建议收藏」随着可穿戴设备的流行,研究蓝牙是必不可少的一门技术了。总结了下蓝牙开发使用的一些东西分享一下。首先需要AndroidManifest.xml文件中添加操作蓝牙的权限。允许程序连接到已配对的蓝牙设备。

  • 揭秘:HR是如何做背景调查的?你真的就可以隐瞒事实了吗?

    揭秘:HR是如何做背景调查的?你真的就可以隐瞒事实了吗?

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号