它是H2的默认存储引擎,支持SQL、JDBC、事务、MVCC等。但也可以直接在应用程序中使用,而不使用JDBC或SQL。 next:3,pages:2,root:4000004f8c,time:1fc,version:1 chunk footer chunk:1,block:2,version:1,fletcher:aed9a4f6 的存储内核了,这个还是比较简单,容易掌握和扩展的。 说明一点:有些朋友有疑问,为什么 DawnSql 选择 h2 的存储内核,而不是去重新做一个?这里主要是为了高用性!h2 作为成熟的数据库存储内核,已经在实际的项目中应用了多年,它是经得起考验的。 如果新做存储内核,可能会给使用者带来高可用性上面的顾虑,所以我们再三权衡后选择更稳定可用性更高的方案。当然随着 DawnSql 的发展和根据企业方的要求,我们也可以对其进行修改和重构!
开篇说明 现在做数据库一般都才有 C/C++ 获取其它编译型的语言,为什么会选择 h2 这种基于 java 的语言?会不会影响效率? 现在大多数,涉及到存储内核的文章或者讲义,要么是一堆原理,要么就是玩具版本例子,根本无法应用到实际的工程上面去,就像马保国的闪电五连鞭一样。 我们选择 h2 的一个重要原因就是,学习完后,可以直接应用到工程上。行不行直接在擂台上比一下就知道了。 图片 4、MVMap 查询的过程 图片 说明一点:有些朋友有疑问,为什么 DawnSQL 选择 h2 的存储内核,而不是去重新做一个?这里主要是为了高用性! h2 作为成熟的数据库存储内核,已经在实际的项目中应用了多年,它是经得起考验的。如果新做存储内核,可能会给使用者带来高可用性上面的顾虑,所以我们再三权衡后选择更稳定可用性更高的方案。
环境 rockylinux 9.2 安装步骤 查看系统现在内核版本 # uname -r 5.14.0-284.11.1.el9_2.x86_64 下载需要的内核版本 网站:http://mirrors.coreix.net _64.rpm 安装内核 # dnf localinstall kernel-lt-modules-6.1.80-1.el9.elrepo.x86_64.rpm kernel-lt-core-6.1.80 -1.el9.elrepo.x86_64.rpm kernel-lt-6.1.80-1.el9.elrepo.x86_64.rpm 设置系统默认内核版本 查看系统中所有的内核 # grubby --info 1.el9.elrepo.x86_64 设置默认内核索引 # grubby --set-default 0 如果第2步查看现在系统默认版本就是新装的版本这一步就不需要执行(执行了也没问题) 最后重启系统查看内核版本 # uname -r 6.1.80-1.el9.elrepo.x86_64 升级内核完成
随着 Debian 8 进入 old stable 分支,Debian 9 开始成为了新的稳定版,不过随之而来的是锐速开心版的内核匹配问题。 不过感谢 Vicer 大佬的及时更新,现在 Debian 9 也可以手动更换内核来安装锐速了。 具体来说 Debian 9 上匹配锐速的内核是 4.9.0-4-amd64,下面我们就来手动更换内核安装锐速。 1.下载内核到 VPS: wget http://security.debian.org/debian-security/pool/updates/main/l/linux/linux-image-4.9.0 -4-amd64_4.9.65-3+deb9u1_amd64.deb 2.安装内核: dpkg -i linux-image-4.9.0-4-amd64_4.9.65-3+deb9u1_amd64.deb
喜欢折腾的同学,会豪气如何升级 Debian Stretch 的内核到新版。 遗憾的是现在能搜到的升级 Debian Linux 内核的文章多数是使用Ubuntu的deb安装包,其实这样装上去是有问题,常见的问题是,总会提示需要 apt --fix-broken install 这里简单记录一下,如何使用Debian官方源更新到最新的内核;以及如何是用 Kernel.org 的deb源,更新内核到最新的 5.x 版本。 另一种方式,是通过 kernel.org 官方提供的安装包,更新到最新的内核。 最后一步安装后,重启一次,就可以用 dpkg -l | grep linux 看到新安装的 5.0.2 的内核了。
在一些快速项目项目中,会使用H2作为数据库 引入jar包 使用mybatis作为ORM pom.xml <dependency> <groupId>org.mybatis.spring.boot version>2.1.4</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2 SELECT * FROM person WHERE id=#{id}") Person selectById(int id); } 配置文件 resources/application.yml H2 不需要用户名和密码 spring: datasource: url: jdbc:h2:mem:testdb #配置数据库URL driver-class-name: org.h2.Driver 的SQL语法跟MySQL有一点出入,需要检查一下,另外就是不能漏掉建表语句后面的分号";" 参考 Spring Boot With H2 Database
背景:腾讯云CDN回源不支持Upgrade:h2,但是宝塔新版本极速安装默认开启了Upgrade:h2,现在教大家如何关闭Upgrade:h2(实际上这个功能目前还没有听说那个业务必须要使用h2) 1、 先测试是否开启h2 0[1].png 2、 打开apache配置文件方法,通过宝塔ssl终端或者登陆服务器操作(其实功能差不多),这里以宝塔举例,通过宝塔终端操作,点击宝塔终端输入"vim /www/ 行配置文件,默认是在154~157行 (vim 展示行数可以输入":set nu") <IfModule http2_module> ProtocolsHonorOrder On Protocols h2 image.png 4、 保存退:wq 出然后重启apache,"service httpd restart" image.png 5、测试是否关闭成功 从截图中可以看到,返回里已经没有Upgrade:h2
介绍 H2是Java编写的一款内嵌式数据库,支持内存和文件两种方式存储数据。 SpringBoot整合 pom.xml org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime application.yml spring: datasource: # url: jdbc:h2:mem:testdb url: jdbc:h2:file:. /src/main/resources/data.sql driver-class-name: org.h2.Driver username: sa password: password h2: # web
转载自 http://advdbg.com/blogs/advdbg_system/articles/21.aspx 今年一月份起,Channel9陆续访谈了一些微软内部的高级设计师和架构师,每次探讨 Windows内核的一个方面。 Surendra Verma: Vista Transactional File System 42:35 12/2/2005 8 9,379 Singularity Revisited 59:00 Wang – Windows Memory Manager 36:00 6/28/2005 38 18,867 Windows, NT Object Manager 40:41 6/3/2005 5 9,474 Part I 17:14 4/22/2005 2 10,074 Windows, NT Cache Manager – Molly Brown – Part II 31:26 4/20/2005 9
-- <property name="URL" value="jdbc:<em>h2</em>:testRestDB" /> --> 9 <property <value>com.cnblogs.yjmyzz.entity</value> 7 </list> 8 </property> 9 xml"></property> 6 <property name="plugins"> 7 <list> 8 <bean 9 orderMapper.getAllOrder(); 7 for (TOrder o : orders) { 8 System.out.println(o.getClientname()); 9 H2还提供了一个可视化界面 Windows开始菜单->H2->H2 console,点击connect连接就行了 有不熟悉的函数啥的,直接在SQL输入区,输入 help,然后run,下面就有帮助信息
于是查看了embedded datasource : h2 h2: 依赖: <dependency> <groupId>com.h2database</groupId> <artifactId >h2</artifactId> </dependency> h2: 驱动名称: org.h2.Driver h2: jdbc url: 内存模式: jdbc:h2:mem:test embedded: jdbc:h2:file:. /db/springboot 最关键的是,file要指定绝对路径,即不能jdbc:h2:file:db/springboot这样说报错,说没指定具体位置。 会生成一个文件 project/db/springboot.mv.db h2:创建表: DROP TABLE IF EXISTS `country`; CREATE TABLE `country` (
H2 H2 是标准 SQL 的关系型数据库,由 java 编写,整个 H2 是一个 jar 包(大约 2.5MB),其开源且使用 JDBC API 进行调用。 模式、存储与兼容 H2 支持嵌入、服务器、混合的运行模式,以及在内存或持久性的数据存储方式,还有兼容各类数据库 2.1 模式 嵌入模式:应用程序和数据库在同一个 JVM 中,这是最快和最简单的连接模式。 ,但仍有一些差异(MySQL 文本默认不区分大小写,而 H2 是区分大小写的),H2 可模拟特定数据库的行为,但这种模仿是有限的,普通情况下可正常使用(下面举例 MySQL) 兼容 MySQL : 在数据库 >h2</artifactId> <version>1.4.197</version> </dependency> <! /持久化到本项目根目录 # mem:test 存放到内存中 url: jdbc:h2:.
h2dhArchive Downloads 1 h2数据库的下载地址 2. H2软件包目录结构 h2 |—bin | |—h2-1.1.116.jar //H2数据库的jar包(驱动也在里面) | |—h2.bat //Windows控制台启动脚本 | |—h2.sh //Linux控制台启动脚本 | |—h2w.bat //Windows控制台启动脚本(不带黑屏窗口) |—docs //H2数据库的帮助文档(内有H2 |—src //H2数据库的源代码 |—build.bat //windows构建脚本 |—build.sh //linux构建脚本 3. windows下启动软件 我们可以进入到h2的bin level: com.baomidou.mybatisplus.samples.quickstart: debug 5 github地址 GitHub – Yong-Wang-Brave/h2
h2数据库进入shell java -cp .. /lib/h2-1.4.200.jar org.h2.tools.Shell Welcome to H2 Shell 1.4.200 (2019-10-14) Exit with Ctrl+C [Enter ] jdbc:h2:~/test URL jdbc:h2:/usr/local/db/xxx-xxx [Enter] org.h2.Driver Driver [Enter]
——《宿命》 在apache-shenyu中也默认用h2数据库作为默认数据库,方便开发、演示、学习、轻量化部署等 但是我们知道h2数据库是基于内存的嵌入式数据库,如何让其在运行动态执行sql呢? console进行: h2-console | 阿超 今天我们换一种方式,直接使用客户端工具连接,默认的url肯定是连不上的: spring: datasource: url: jdbc:h2 DB_CLOSE_DELAY=-1;MODE=MySQL; username: sa password: sa driver-class-name: org.h2.Driver 因为这里是h2 :mem:路径,即便换成file也是不允许两个连接的 我们换成tcp连接,再指定一下目录 spring: datasource: url: jdbc:h2:tcp://localhost/$ server started and connection is open."); System.out.println("URL: jdbc:h2:" + server.getURL
一、H2数据库简介 1、H2数据库是一个开源的关系型数据库。 web的数据库管理界面 二、在Java中操作H2数据库 1、以嵌入式(本地)连接方式连接H2数据库 这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后, 此时数据库文件就会被锁定 连接语法:jdbc:h2:[file:][] 例如: jdbc:h2:~/test //连接位于用户目录下的test数据库 jdbc:h2:file:/data/sample jdbc:h2:file: 时连接到H2数据库 连接语法:jdbc:h2:tcp://[:]/[] 范例:jdbc:h2:tcp://localhost/~/test 3、H2数据库的内存模式 (1)、H2数据库被称为内存数据库 jdbc:h2:C:/H2/abc”; /** * 使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐) */ private static final String JDBC_URL =
大家好,又见面了,我是你们的朋友全栈君 一、H2简介 1、H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。 (二)连接方式 1、以嵌入式(本地)连接方式连接H2数据库 这种连接方式默认情况下只允许有一个客户端连接到H2数据库,有客户端连接到H2数据库之后,此时数据库文件就会被锁定,那么其他客户端就无法再连接了 :h2:file:/data/sample jdbc:h2:file:E:/H2/gacl(Windows only) 2、使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐 H2数据库的内存模式 (1)、H2数据库被称为内存数据库,因为它支持在内存中创建数据库和表。 H2数据库(推荐) */ // private static final String JDBC_URL = "jdbc:h2:tcp://10.35.14.122/C:/H2/user"; private
32位的应用程序可以完美再64位的电脑上运行,而32位的内核驱动无法再64位的电脑上运行,或者64位的驱动无法在32位的应用程序上运行。这是为什么呢。 转换流程: 当一个32位Application发起系统调用时,WOW64会拦截下来,将其转换为64位的类型(包括指针范围,数据类型范围等等),然后再把系统调用请求提交给内核。 UNREFERENCED_PARAMETER(RegistryPath); __asm { int 3 } return STATUS_SUCCESS; } 一个很简单的内核驱动代码
启动和使用H2控制台 H2控制台应用程序允许您使用浏览器访问数据库。这可以是H2数据库,也可以是支持JDBC API的其他数据库。 根据您的平台和环境,有多种方法可以启动H2控制台: OS 开始 视窗 单击[开始],[所有程序],[H2]和[H2控制台(命令行)] 系统托盘中将添加一个图标: 如果没有显示窗口和系统托盘图标,则可能是 特殊H2控制台语法 H2控制台支持一些内置命令。这些在H2控制台中解释,因此它们适用于任何数据库。内置命令需要位于语句的开头(在任何备注之前),否则它们不会被正确解析。 H2控制台的设置 H2控制台的设置存储在.h2.server.properties用户主目录中调用的配置文件中。 H2数据库与HSQLDB和PostgreSQL兼容。要利用H2特定功能,请使用H2Platform。
JAVA 项目中使用 H2 数据库 发布时间:2018-06-08 15:43, 浏览次数:823 , 标签: JAVA 为什么要使用H2数据库 H2数据库是可以嵌入到JAVA项目中的,因为只需要导入一个 使用WEB控制台管理H2数据库 建表、建数据的话,可以通过H2自带的WEB控制台来做(当然H2也提供命令行的方式) WEB控制台可以通过命令行来启动,但为了方便,可以从H2官网上下载一个安装包,运行里面的 H2\bin目录这是H2安装完以后bin目录下的内容,运行h2w.bat打开web控制台 H2 web控制台Login画面 点Connect 之后的玩法就跟其他数据库差不多了,可以点击下面的Sample H2 控制台 关于H2 数据库的连接方式 连接H2数据库有以下方式 * 服务式 (Server) * 嵌入式(Embedded) * 内存(Memory) 还没太仔细研究,到目前的理解: 嵌入式的话,就是这个 * 服务式 (Server) jdbc:h2:tcp://localhost/~/test * 嵌入式(Embedded) jdbc:h2:~/test * 内存式(Memory) jdbc:h2:tcp