以编程方式创建新的 H2 服务器
Posted
技术标签:
【中文标题】以编程方式创建新的 H2 服务器【英文标题】:Creating new H2 server programmatically 【发布时间】:2015-04-28 21:36:51 【问题描述】:在 H2 中,有两种方法可以创建新的内存数据库。首先,您使用 CREATE DATABASE.. SQL 语句显式创建数据库。另一方面,如果您尝试连接到不存在的数据库,H2 将简单地创建它。我选择了第一种方式,因为如果我没有收到某种错误,我将如何知道创建单个表(只有两列)。
问题是 H2 不喜欢我正在使用的 SQL 并标记错误。此 SQL 语句:
String sql = "CREATE DATABASE Tickets, " + USER + ", " + PASS;
抛出此异常:
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE DATABASE[*] TICKETS, USERNAME, PASSWORD "; expected "OR, FORCE, VIEW, ALIAS, SEQUENCE, USER, TRIGGER, ROLE, SCHEMA, CONSTANT, DOMAIN, TYPE, DATATYPE, AGGREGATE, LINKED, MEMORY, CACHED, LOCAL, GLOBAL, TEMP, TEMPORARY, TABLE, PRIMARY, UNIQUE, HASH, SPATIAL, INDEX"; SQL statement:
你知道上面发生了什么吗?或者,您能告诉我如何判断数据库是自动创建的,以便我可以继续创建表吗?
【问题讨论】:
你能给我看第一个例子吗? (抱歉,我知道这个愚蠢的问题,但我从未见过提及) 如果连接时数据库不存在,您可以告诉 H2 抛出错误:h2database.com/html/features.html#database_only_if_exists 当然,您会收到create database
的错误。查看手册:h2database.com/html/grammar.html 没有这样的声明。你在 H2 手册的哪里找到的?
【参考方案1】:
当您建议您可以通过 SQL 创建 H2 数据库时,我不认为您是正确的 - 我认为这是您的基本问题...
只需连接到您的数据库(它是定义所涉及数据库的 jdbc URL),如果您没有遇到异常,请继续使用它。 (创建你的表等)
【讨论】:
以上是关于以编程方式创建新的 H2 服务器的主要内容,如果未能解决你的问题,请参考以下文章