Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >调试h2数据库

调试h2数据库

作者头像
阿超
发布于 2024-08-23 11:56:32
发布于 2024-08-23 11:56:32
12500
代码可运行
举报
文章被收录于专栏:快乐阿超快乐阿超
运行总次数:0
代码可运行

生命中的全部偶然,其实都是命中注定。是为宿命。——《宿命》

apache-shenyu中也默认用h2数据库作为默认数据库,方便开发、演示、学习、轻量化部署等

但是我们知道h2数据库是基于内存的嵌入式数据库,如何让其在运行动态执行sql呢?一般我们采用h2-console进行:

h2-console | 阿超

今天我们换一种方式,直接使用客户端工具连接,默认的url肯定是连不上的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  datasource:
    url: jdbc:h2:mem:${HOME:${HOMEDRIVE}${HOMEPATH}}/shenyu;DB_CLOSE_DELAY=-1;MODE=MySQL;
    username: sa
    password: sa
    driver-class-name: org.h2.Driver

因为这里是h2:mem:路径,即便换成file也是不允许两个连接的

我们换成tcp连接,再指定一下目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  datasource:
    url: jdbc:h2:tcp://localhost/${HOME:${HOMEDRIVE}${HOMEPATH}}/Downloads/shenyu-study/shenyu;DB_CLOSE_DELAY=-1;MODE=MySQL;SCHEMA=PUBLIC;
    username: sa
    password: sa
    driver-class-name: org.h2.Driver

然后在springboot启动类添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.h2.tools.Server;

public class H2Server {

    public static void main(String[] args) throws Exception {
        Server server = Server.createTcpServer("-tcpAllowOthers").start();
        System.out.println("H2 server started and connection is open.");
        System.out.println("URL: jdbc:h2:" + server.getURL() + "/~/Downloads/shenyu-dubbo-study/shenyu");
    }
}

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.shenyu.admin;

import org.h2.tools.Server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.ldap.LdapAutoConfiguration;

import java.sql.SQLException;

/**
 * shenyu admin start.
 */
@SpringBootApplication(exclude = {LdapAutoConfiguration.class})
public class ShenyuAdminBootstrap {

    /**
     * Main entrance.
     *
     * @param args startup arguments
     */
    public static void main(final String[] args) throws SQLException {
        Server server = Server.createTcpServer("-tcpAllowOthers").start();
        System.out.println("H2 server started and connection is open.");
        System.out.println("URL: jdbc:h2:" + server.getURL() + "/~/shenyu");
        SpringApplication.run(ShenyuAdminBootstrap.class, args);
    }

}

然后启动项目以后你就可以用客户端工具连接啦:

url选择:jdbc:h2:tcp://localhost/~/Downloads/shenyu-study/shenyu

用户名和密码都还是sa,快乐调SQL吧~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Apache-ShenYu让h2数据库持久化到文件中
今天发现使用 调试h2数据库 中的方式连接h2数据库却不行,由于目录里没有创建,所以我们得先创建:
阿超
2024/10/12
1210
mysql h2_h2初始化数据库
H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。
全栈程序员站长
2022/11/07
3.7K0
java h2 数据库_Java H2数据库
url: jdbc:h2:file:./src/main/resources/data.sql
全栈程序员站长
2022/11/04
7130
java h2 数据库_Java H2数据库
java:如何用代码控制H2 Database启动
1、纯手动start/stop 1 package com.cnblogs.yjmyzz.h2; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 import org.h2.tools.Server; 10 import
菩提树下的杨过
2018/01/19
1.1K0
H2数据库教程_h2数据库编辑数据库
H2控制台应用程序允许您使用浏览器访问数据库。这可以是H2数据库,也可以是支持JDBC API的其他数据库。
全栈程序员站长
2022/11/04
5.6K0
H2数据库教程_h2数据库编辑数据库
h2数据库如何连接_怎样远程连接数据库
由上图可知,默认情况下H2数据库的TCP服务端口为9092,客户端的端口为8082,PG服务的端口为5435。
全栈程序员站长
2022/11/07
7.7K0
h2数据库如何连接_怎样远程连接数据库
Java开发环境系列:H2内嵌式数据库使用教程
H2数据库是一个开源的,使用java开发的内嵌式数据库。使用者不需要像Oracle、MySQL等数据库一样动则安装几百兆甚至几G的安装程序。以下使用步骤以统一门户系统为例。
架构师小跟班
2019/08/07
2K0
Java开发环境系列:H2内嵌式数据库使用教程
H2 数据库使用简介
H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途:
全栈程序员站长
2022/07/23
4.1K0
H2 数据库使用简介
H2 数据库入门和基本使用
H2官网:http://h2database.com/html/main.html
静谧星空TEL
2021/04/27
4.3K0
H2 数据库入门和基本使用
h2数据库使用_数据库教程
H2是一个采用java语言编写的嵌入式数据库引擎,只是一个类库(即只有一个 jar 文件),可以直接嵌入到应用项目中,不受平台的限制
全栈程序员站长
2022/11/07
3.6K0
h2数据库使用_数据库教程
Spring Data JPA(二):SpringBoot集成H2
本篇文章引导你使用Spring Boot,Spring Data JPA集成H2内存数据库。更多关于H2数据参考:http://www.h2database.com/html/tutorial.html
java干货
2021/02/19
3.5K0
Spring Data JPA(二):SpringBoot集成H2
Java连接H2数据库
h2数据库的连接和MySQL连接一样,都可以用jdbc去获取,只需要修改驱动类、URL和用户名密码
静谧星空TEL
2021/04/27
1.8K0
Java连接H2数据库
Spring Boot 和 Hibernate 的 H2 数据库配置来进行启动测试
如果你的 Spring 项目中没有添加 H2 的依赖,你需要在 Maven 中添加。
HoneyMoose
2020/10/23
1.6K0
Spring Boot 和 Hibernate 的 H2 数据库配置来进行启动测试
H2 数据库
H2 是标准 SQL 的关系型数据库,由 java 编写,整个 H2 是一个 jar 包(大约 2.5MB),其开源且使用 JDBC API 进行调用。其主要特性如下:
晚上没宵夜
2022/09/07
1.2K0
H2 数据库入门和基本使用「建议收藏」
H2官网:http://h2database.com/html/main.html
全栈程序员站长
2022/11/07
6K0
H2 数据库入门和基本使用「建议收藏」
H2数据库集群_数据库集群搭建
常用的开源数据库:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB类似,十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。 H2的优势: 1、h2采用纯Java编写,因此不受平台的限制。 2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。 3、性能和功能的优势 H2比HSQLDB的最大的优势就是h2提供了一个十分方便的web控制台用于操作和管理数据库内容,这点比起HSQLDB的swing和awt控制台实在好用多了。 H2和各数据库特征比较
全栈程序员站长
2022/11/04
2.1K0
H2数据库集群_数据库集群搭建
ShenYu 网关开发:在本地启用运行
无论什么方式安装,都需要先初始化数据库,这里我选择了在本地通过 Docker 启用一个 mysql 5.7
晓晨
2022/09/01
1.2K0
ShenYu 网关开发:在本地启用运行
在Spring Boot使用H2内存数据库
在之前的文章中我们有提到在Spring Boot中使用H2内存数据库方便开发和测试。本文我们将会提供一些更加具体有用的信息来方便我们使用H2数据库。
程序那些事
2020/07/08
3.6K0
在Spring Boot使用H2内存数据库
在Spring Boot中使用内存数据库
所谓内存数据库就是可以在内存中运行的数据库,不需要将数据存储在文件系统中,但是相对于普通的数据库而言,内存数据库因为数据都在内存中,所以内存的数据库的存取速度会更快。
程序那些事
2020/07/08
1.5K0
Java单元测试: MySQL --- H2
H2是一个使用Java实现的内存内存数据库,支持标准的SQL语法,支持大部分的MySQL语法和函数,很适合依赖关系型数据库(比如MySQL, SQL Server, Oracle等)的单元测试。(本文Spring + MySQL作为项目框架)
十毛
2019/03/27
5K0
Java单元测试: MySQL --- H2
相关推荐
Apache-ShenYu让h2数据库持久化到文件中
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验