大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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:mem: |
|
jdbc:h2:mem:<databaseName> |
|
使用TCP/IP的服务器模式(远程连接)
|
jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName> |
|
jdbc:h2:ssl://<server>[:<port>]/<databaseName> |
jdbc:h2:<url>;CIPHER=[AES|XTEA] |
|
jdbc:h2:<url>;FILE_LOCK={NO|FILE|SOCKET} |
|
jdbc:h2:<url>;IFEXISTS=TRUE |
|
jdbc:h2:<url>;DB_CLOSE_ON_EXIT=FALSE |
|
jdbc:h2:<url>[;USER=<username>][;PASSWORD=<value>] |
|
jdbc:h2:<url>;LOG=2 |
|
jdbc:h2:<url>;TRACE_LEVEL_FILE=<level 0..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:<url>;MODE=<databaseType> |
|
jdbc:h2:<url>;AUTO_RECONNECT=TRUE |
|
jdbc:h2:<url>;AUTO_SERVER=TRUE |
|
jdbc:h2:<url>;<setting>=<value>[;<setting>=<value>…] |
要想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账号...