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>

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [乐意黎原创] 美女发帖求嫁有钱人 金融家精彩回应[通俗易懂]

    [乐意黎原创] 美女发帖求嫁有钱人 金融家精彩回应

    2022年1月31日
    39
  • asmx文件_将Web服务的实现与ASMX文件分开

    asmx文件_将Web服务的实现与ASMX文件分开asmx文件Afellowsaidrecentlythathewantedtobuilda”monsterwebservice”withover20classesandover20methods(well,notTHATmonster,butnotHelloWorld).Hesaid:一位同僚最近说,他想构建一个具有20多个类和20多种…

    2022年5月23日
    41
  • Java中常用的设计模式

    Java中常用的设计模式文章转载借鉴:http://blog.csdn.net/zhangerqing一、什么是设计模式设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块…

    2022年7月8日
    19
  • S3C2440—UART原理简介

    S3C2440—UART原理简介通用异步收发器简称UART,即“UniversalAsynchronousReceiverTransmitter”     s3c2440提供了三个UART端口,它们都可以通过查询、中断和DMA方式传输数据,而且每个UART都分别有一个64个字节的接收FIFO和一个64个字节的发送FIFO。UART由波特率发生器、发送器、接收器和控制逻辑组成,使用系统时钟可以达到115.2Kbit

    2022年5月27日
    30
  • 越权漏洞(IDOR)测试技巧「建议收藏」

    越权漏洞(IDOR)测试技巧「建议收藏」文章目录一、IDOR介绍二、常见的测试技巧1.改变HTTP请求方法2.路径穿越绕过3.改变Content-type(内容类型)4.用数字ID替换非数字5.大小写替换绕过6.用通配符替换ID7.给Web应用提供一个请求ID,哪怕它没作要求8.HTTP参数污染,为同一参数提供多个值。9.更改文件类型。添加不同的文件扩展名(例如.json,.xml,.config)10.JSON参数污染11.在请求体用数组包装参数值12.尝试不同版本的API三、总结一、IDOR介绍IDOR,InsecureDire.

    2022年6月12日
    59
  • 详解DOM对象中clientWidth、offsetWidth等属性

    详解DOM对象中clientWidth、offsetWidth等属性我们有时需要获得鼠标在某盒子中的位置,或者是随意移动某盒子的位置,在这些场景中我们可能经常需要用到clientWidth、offsetWidth、offsetTop啊等等。但是对于初学者来说(包括我),看到这些就头疼,因为感觉意思都相近,但作用却不同,所以今天天我就来捋一捋,搞清楚,后面好干活。好吧,废话不多说,开始吧。先上一下示例代码,下面要用到。HTML:…

    2022年7月22日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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