java - 在 JAVA 中创建的 H2 数据库在 H2 控制台中找不到?
问题描述
目前有一个简单的 Java 程序可以创建一个 H2 数据库,如下所示:
public static void main(String[] args) {
try {
Connection conn = null;
Statement stm = null;
Class.forName("org.h2.Driver");
conn = DriverManager.getConnection("jdbc:h2:D:/H2db/test", "sa", "sa");
stm = conn.createStatement();
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
我看到在目录中创建的文件。然而,当尝试从 H2 控制台 ( localhost:8082
) 访问同一个数据库并同时输入
jdbc:h2:D:/H2db/test
andjdbc:h2:D:\H2db\test
时,我收到一条错误消息:
Database `D:/H2db/test` not found, either pre-create it or
allow remote database creation (not recommended in secure environments)
有人知道为什么我不能通过控制台访问数据库吗?
解决方案
那段代码仅用于连接到以前创建的数据库。要成功连接到它,您应该首先创建它。
$ java -cp bin/h2-1.4.199.jar org.h2.tools.Shell
Welcome to H2 Shell 1.4.199 (2019-03-13)
Exit with Ctrl+C
[Enter] jdbc:h2:mem:test
URL jdbc:h2:D:/h2db/test
[Enter] org.h2.Driver
Driver
[Enter] sa
User
Password
然后,只有这样,您才能通过您的 java 应用程序连接到它。
推荐阅读
- javascript - 如何将谷歌登录集成到我的网站并收集用户详细信息?
- python - Python:动态地将类添加到 QtWidgets.QMainWindow() 实例?
- docker - Go install 在 Dockerfile 中找不到我的内部包
- kubernetes - 谷歌 Kubernetes 引擎 (GKE) CPU/pod
- r - 如何在ggplot的x轴上定义从早上6点到早上6点的日子?
- c# - 使用 XmlSerializer 的根派生类的元素名称
- kubernetes - Kubernetes 入口路由到 Nextjs 应用程序的问题
- javascript - undefined 不是 listView ReactNative 的对象(评估“this.state.ds”)
- javascript - 调出特定的导航选项卡
- javascript - 单击子项时停止父项 onClick(React 或 vanilla JS)