H2数据库学习总结

H2数据库-简介

H2 是开源的轻量级Java数据库。它可以嵌入Java应用程序中或以客户端-服务器模式运行。
H2 数据库主要可以配置为作为内存数据库运行,这意味着数据将不会持久存储在磁盘上。
由于具有嵌入式数据库,因此它不用于生产开发,而主要用于开发和测试。可以在嵌入式模式或服务器模式下使用此数据库。H2数据库的主要功能:
➢ 极快的开源JDBC API;
➢ 在嵌入式和服务器模式下可用;
➢ 基于浏览器的控制台应用程序;
➢ 提供事务支持(已提交读),两阶段提交的多个连接,表级锁定;
➢ 基于成本的优化程序,使用遗传算法进行复杂查询(零管理);
➢ 支持加密数据库(AES),SHA-256密码加密,加密功能和SSL;
➢ 包含可滚动和可更新的结果集支持,大结果集,外部结果排序,函数可以返回结果集。

H2数据库-主要特点

➢ 一个非常快的数据库引擎。
➢ H2是开源的,并用Java编写。
➢ 支持标准的SQL和JDBC API,也可以使用PostgreSQL ODBC驱动程序。
➢ 具有嵌入式和服务器模式。
➢ H2支持集群和多版本并发。
➢ 具有强大的安全功能。
➢ 占用空间小-jar文件大小约为1.5MB。

简单案例

<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>RELEASE</version><scope>compile</scope>
</dependency>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;/*** H2 简单案例** @author chengjiang*/
public class TestH2 {private static final String JDBC_URL_LOCAL = "jdbc:h2:file:~/.h2/test";private static final String USER = "sa";private static final String PASSWORD = "123456";private static final String DRIVER_CLASS = "org.h2.Driver";public static void main(String[] args) throws Exception {// 注册驱动Class.forName(DRIVER_CLASS);Connection conn = DriverManager.getConnection(JDBC_URL_LOCAL, USER, PASSWORD);Statement statement = conn.createStatement();// 执行建表statement.execute("DROP TABLE IF EXISTS USER_INFO");statement.execute("CREATE TABLE USER_INFO(id INTEGER PRIMARY KEY ,name VARCHAR(50), sex VARCHAR(2))");// 插入数据statement.executeUpdate("INSERT INTO USER_INFO VALUES(1, '张丹', '男') ");statement.executeUpdate("INSERT INTO USER_INFO VALUES(2, '李云', '女') ");statement.executeUpdate("INSERT INTO USER_INFO VALUES(3, '赵武', '男') ");statement.executeUpdate("INSERT INTO USER_INFO VALUES(4, '林少三', '男') ");// 查询数据ResultSet resultSet = statement.executeQuery("select * from USER_INFO");while (resultSet.next()) {System.out.println(resultSet.getInt("id")+ ", " + resultSet.getString("name")+ ", " + resultSet.getString("sex"));}statement.close();conn.close();}
}

springboot整合H2

spring:# JDBC数据源配置datasource:driver-class-name: org.h2.Driver# 使用混合模式,默认情况下,H2 只运行一个进程访问,AUTO_SERVER=TRUE 表示可以多个进程可以访问同一个数据库# 数据库不存在时会自动创建,初始账号密码可以自定义。# ~ 连接位于当前用户目录下url: jdbc:h2:file:~/.h2/test;AUTO_SERVER=TRUE
#    url: jdbc:h2:C:~/.h2/test;AUTO_SERVER=TRUE# 使用TCP/IP的服务器模式(远程连接)方式连接H2数据库(推荐)# 这种连接方式就和其他数据库类似,是基于Service的形式进行连接的,因此允许多个客户端同时连接到H2数据库
#    url: jdbc:h2:tcp://localhost/~/test
#    url: jdbc:h2:tcp://10.35.14.122/C:/H2/user# 内存模式,一旦服务器重启,那么内存中的数据库和表就不存在了
#    url: jdbc:h2:mem:test_memusername: sapassword: 123456h2:# H2 Web 控制台配置console:# 启用 h2 Console 控制台enabled: true# 设置访问路径path: /h2settings:# 是否允许远程访问,false则只能在本机访问web-allow-others: false

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/440255.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis-plus 3.5.1 自动填充无效问题

使用了mybatis-plus的自动填充功能,但是我debug的时候进都进不去 这是为什么? 我在新增的时候连insertFill方法都进不去 原因是,我没有在我的新增实体类上加上 fill FieldFill.INSERT 还有些问题是配置类, 没有扫描到的问题,这个网上一搜一大把 注意,这个实体类是你新增的…

PlatformIO+Zephyr+STM32F756环境搭建及HelloWorld

PlatformIOZephyrSTM32F756环境搭建及HelloWorld 安装VSCode及PlatformIO IDE插件下载示例项目ST-Link刷J-link编辑配置文件等待PIO下载依赖及工具链编译下载调试Zephyr源码位置 Zephyr作为高质量的开源嵌入式操作系统之一&#xff0c;风头日盛&#xff0c;有比肩FreeRTOS之势&…

【论文复现】DCFace: Synthetic Face Generation with Dual Condition Diffusion Model

DCFace: 用双条件扩散模型生成合成人脸。CVPR 2023.4 code&#xff1a;mk-minchul/dcface (github.com) paper&#xff1a;[2304.07060] DCFace: Synthetic Face Generation with Dual Condition Diffusion Model (arxiv.org) 论文 介绍 应用&#xff1a;生成用于训练人脸…

P1019 [NOIP2000 提高组] 单词接龙 深度优先搜索

文章目录 题目链接题目描述解题思路代码实现总结 题目链接 链接: P1019 [NOIP2000 提高组] 单词接龙 题目描述 解题思路 这是一道深度优先搜索题目,我们定义check函数来计算两个字符串的最小重合部分&#xff0c;dfs中第一个参数代表我们当前使用的是哪一个字串&#xff0c;…

【Docker】WSL(Windows Subsystem for Linux)常见命令解释说明以及简单使用

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Docker容器》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

Android Studio 出现 “Index is not created for `Stubs‘“ 的原因,如何解决?

亲爱的朋友们&#xff01;大家好我是咕噜铁蛋&#xff01;&#xff0c;今天我将与大家分享一个在Android Studio开发过程中可能遇到的问题&#xff1a;“Index is not created for Stubs”。这个问题看似不起眼&#xff0c;但实际上可能会对开发效率产生不小的影响。下面&#…

申万宏源:证券低时延交易系统全链路自主可控创新实践 |论坛实录

由中科驭数主办的第二届证券基金行业先进计算技术大会暨2024低时延技术创新实践论坛&#xff08;上海站&#xff09;在上海举行。会上各位嘉宾深入的分享&#xff0c;吸引了不少行业同仁对本次会议干货内容的关注。特此&#xff0c;中科驭数整理部分演讲者发言实录&#xff0c;…

Django学习之orm框架

八、Django学习之orm框架 其他关于Python Web开发笔记&#xff1a;&#xff08;如果遇到问题可以一起交流~&#xff09; 一、Flask学习之HTML-CSDN博客 二、Flask学习之CSS-CSDN博客 【接上篇】二、Flask学习之CSS&#xff08;下篇&#xff09;-CSDN博客 三、Flask学习之Bo…

BUUCTFSQL注入(部分)

原来靶场不是最折磨的&#xff0c;新手做ctf才是 1.[极客大挑战 2019]LoveSQL 我一共做了三题&#xff0c;先来讲里面最简单的题吧 看见一个登录框&#xff0c;先尝试注入&#xff0c;发现会报错&#xff0c;而且不过滤# &#xff0c;于是就开始常规操作 1 union select 1,d…

3985. 辗转相除法

一、题目 Problem #3985 - ECNU Online Judge 二、思路 第一眼还以为是最基本的欧几里得&#xff0c;然后一个劲地在那里找合适的一组整数&#xff0c;找了一会没找到&#xff0c;后面直接用随机查找一下子找到了 三、代码 import sun.misc.GC;import java.util.Random; impo…

类和对象 第五部分第六小节:函数调用运算符重载

1、函数调用运算符&#xff08;&#xff09;可以重载 由于重载后使用方式非常像函数的调用&#xff0c;因此称此为仿函数 代码案例&#xff1a;打印输出仿函数 #include<iostream> using namespace std; class MyPrint { public://重载函数调用运算符void operator()(str…

2分钟快速了解!全网最详细的性能测试教程之【Redis 简介和安装】

本篇文章主要介绍基于Redis的的简介和安装&#xff0c;其中参考了许多大佬写的文章&#xff0c;算是做一个Redis的基础教程吧。 Redis 简介 Redis 是完全开源的&#xff0c;遵守 BSD 协议&#xff0c;是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有…