问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp.net 使用 h2 内存数据库

发布网友 发布时间:2022-05-01 14:09

我来回答

4个回答

懂视网 时间:2022-05-01 18:30

H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。

一、引入Maven依赖

在maven中定义H2数据库的版本属性

<properties>
<h2.version>1.3.172</h2.version>
</properties>

添加H2依赖

 <dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
<scope>test</scope>
</dependency>

二、运行方式

1、在内存中运行

数据库只在内存中运行,关闭连接后数据库将被清空,适合测试环境

连接字符串:

jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1

如果不指定DBName,则以私有方式启动,只允许一个连接

2、嵌入式

数据库持久化存储为单个文件

连接字符串:

jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE

~/.h2/DBName表示数据库文件的存储位置,如果第一次连接则会自动创建数据库

3、服务模式

H2支持三种服务模式:

1.web server:此种运行方式支持使用浏览器访问H2 Console

2.TCP server:支持客户端/服务器端的连接方式

3.PG server:支持PostgreSQL客户端

启动tcp服务连接字符串示例:

jdbc:h2:tcp://localhost/~/test 使用用户主目录

jdbc:h2:tcp://localhost//data/test 使用绝对路径

4、连接字符串参数

1.DB_CLOSE_DELAY:要求最后一个正在连接的连接断开后,不要关闭数据库

2.MODE=MySQL:兼容模式,H2兼容多种数据库,该值可以为:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL

3.AUTO_RECONNECT=TRUE:连接丢失后自动重新连接

4.AUTO_SERVER=TRUE:启动自动混合模式,允许开启多个连接,该参数不支持在内存中运行模式

5.TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:输出跟踪日志到控制台或文件, 取值0为OFF,1为ERROR(默认值),2为INFO,3为DEBUG

6.SET TRACE_MAX_FILE_SIZE mb:设置跟踪日志文件的大小,默认为16M

5、启动服务模式,打开H2 Console web页面

启动服务,在命令行中执行

java -cp h2*.jar org.h2.tools.Server

执行如下命令,获取选项列表及默认值

java -cp h2*.jar org.h2.tools.Server -?

常见的选项如下:

-web:启动支持H2 Console的服务

-webPort <port>:服务启动端口,默认为8082

-browser:启动H2 Console web管理页面

-tcp:使用TCP server模式启动

-pg:使用PG server模式启动

此外,使用maven也可以启动H2服务

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>1.0.0</modelVersion>
<version>1.0.0</version>
<groupId>groupid</groupId>
<artifactId>h2-console</artifactId>
<name>H2 Console</name>
<packaging>pom</packaging>

<properties>
<h2.version>1.3.172</h2.version>
</properties>

<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.h2.tools.Server</mainClass>
<arguments>
<argument>-web</argument>
<argument>-webPort</argument>
<argument>8090</argument>
<argument>-browser</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>

在命令行中执行如下命令启动H2 Console

mvn exec:java

或者建立一个bat文件

@echo off
call mvn exec:java
pause

此操作相当于执行了如下命令:

java -jar h2-1.3.168.jar -web -webPort 8090 -browser

三、应用程序配置

1、Properties配置

java应用程序关于数据库的Properties配置文件示例如下:

#h2 database settings
jdbc.driver=org.h2.Driver
jdbc.url=jdbc:h2:file:~/.h2/quickstart;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1
jdbc.username=sa
jdbc.password=

#connection pool settings
jdbc.pool.maxIdle=5
jdbc.pool.maxActive=40

2、初始化数据库

(1)、在Maven中初始化数据库

可以创建一个Profile,专门用于初始化数据库。在maven中可以通过maven-antrun-plugin执行ant任务,在ant任务中使用sql标签可以执行sql脚本文件,配置示例如下:

<profile>
<id>refresh-db</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<configuration>
<target>
<property file="src/main/resources/application.properties" />
<sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}" onerror="continue" encoding="${project.build.sourceEncoding}">
<classpath refid="maven.test.classpath" />
<transaction src="src/main/resources/sql/h2/schema.sql"/>
<transaction src="src/test/resources/data/h2/import-data.sql"/>
</sql>
</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>

执行如下命令调用该Profile,初始化数据库

mvn antrun:run -Prefresh-db

(2)、在Spring中初始化数据库

Spring Profile和maven profile一样,也可以模拟不同的开发环境。在Spirng中可以通过jdbc:initialize-database初始化数据库,配置示例如下

<beans profile="test">
<context:property-placeholder ignore-resource-not-found="true"
location="classpath*:/application.properties,
classpath*:/application.test.properties" />

<!-- Spring Simple连接池 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

<!-- 初始化数据表结构 -->
<jdbc:initialize-database data-source="dataSource" ignore-failures="ALL">
<jdbc:script location="classpath:sql/h2/schema.sql" />
<jdbc:script location="classpath:data/h2/import-data.sql" encoding="UTF-8"/>
</jdbc:initialize-database>
</beans>

参靠:

1、Java嵌入式数据库H2学习总结(一)——H2数据库入门

2、Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库

3、Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库

H2数据库攻略

标签:ase   版本   content   获取   idle   run   pause   XML   group   

热心网友 时间:2022-05-01 15:38

提供一个下载的地方
http://download.csdn.net/detail/yixiaoping/5956595
H2就不做很多介绍了。资源包内容列表是我进行H2预研是收集的H2资料,应该是最全面的的了:

1、h2.pdf (H2 API)

2、h2-1.3.173.jar (截止2013-8-15最新的H2.jar)

3、h2-2013-07-28.zip (截止2013-8-15最新的H2服务,包括API\JAR\服务)

4、H2Database_SQL语法.doc

5、H2Database高级特性.doc

6、H2Database聚合函数.doc

7、H2Database连接配置.doc

8、H2Database数据类型.doc

9、H2Database中文教程.doc

10、H2内存数据库h2部署操作手册.docx

11、H2内存数据库安装与维护.doc

12、H2数据库基础知识.docx

13、H2数据库使用.doc追问asp.net能用吗?

热心网友 时间:2022-05-01 16:56

这是什么意思呢?可以详细说一下吗?

热心网友 时间:2022-05-01 18:31

还是不懂啊。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
土狗一般多大开始懂人性 如何训练 小土狗怎么训练才听话 新手训狗的好方法 跑跑卡丁车故事模式哪一关还海盗船长(人物)奖励的,骨灰玩家说下._百 ... 跑跑卡丁车手游被遗忘的炮塔的宝藏在哪_跑跑卡丁车手游被遗忘的炮塔的... 跑跑卡丁车手游在被遗忘的炮塔附近搜寻宝藏怎么做?遗忘炮塔宝藏攻略... 跑跑卡丁车手游被遗忘炮塔宝藏在哪 炮塔附近搜寻宝箱位置详解-新手攻略... 跑跑卡丁车被遗忘的炮塔附近宝藏在哪里_跑跑卡丁车被遗忘的炮塔附近宝藏... 跑跑卡丁车手游在遗忘的炮塔附近搜寻宝藏在哪 遗忘炮塔宝藏位置详解 迅捷路由器使用问题 ...MATLAB7.0的,程序总是在打开后一会,就自动关闭了。希望能帮忙哦,感... 我最近比较想了解登录安全的sns社交网站,不知道有什么好的推荐吗? QQ赞怎么快速变多 男人为什么要选择出轨? 有什么软件可以让QQ的赞变多吗?如果有的请给我,我会采纳你的! SNS平台是什么意思? sns社交网站有哪些? SNS社交网站有哪些呢? 11岁女生拉尿地方两边各长了两个包一摸就痛,这是怎么回事? SNS网站是什么 男喜欢女,男生在大家面前,还有喜欢人的面前,说另一个女生要去拉屎拉尿还发出嘘嘘的声音,这是? 在手机开发者选项上设置这个窗口动画缩放和过渡动画缩放,会对手机造成损害吗? 为什么女生小便十几秒就尿完了,男生需要尿1分钟,男生为什么比女生尿的多呀 中国的SNS网站有哪些? 开发者选项的窗口动画 过渡动画 动画程序时长 这三个都让我关了,对手机有什么影响吗 台式机键盘怎么切换工能 尿尿为什么女生不能看? 女生拉尿,都要擦纸嘛 计算机有哪些热门的专业? 关闭动画对手机有什么影响 我今天在街上逛街的时候,(走到一处偏僻的街角)看见个女孩,在撒尿,还看见了不该看的地方,怎么忘记啊 SNS社交网站的介绍 什么软件可以让QQ赞一下变多??? 郭沫若的写作背景是什么? 郭沫若的写作背景是 用什么方法能使QQ上的赞变的多 电脑最新技术 谁知道郭沫若的背景啊 现在电脑的最新技术是什么? 电脑种类功能 最新技术 未来发展 郭沫若写《白鹭》背景 郭沫若在写《天上的街市》时的历史背景是什么? 郭沫若的简介与他写&lt;&lt;天上的街市&gt;&gt;的写作背景 郭沫若诗两首 写作背景 如今的电脑技术有多少种?分别是什么? 雷电颂 郭沫若 写作背景 现在最新,最有前景的计算机技术是什么,如何学习到 郭沫若写《天上的街市》写作背景是什么??? 郭沫若写《天上的街市背景》的写作背景 二十一世纪计算机的新技术及发展趋势 郭沫若写天上的街时的时代背景