用户名密码
刚开始使用 IDEA 连接 H2 数据库时,使用 Embedded
连接方式,URL 为 jdbc:h2:~/h2/community
并没有使用用户名和密码,是没有问题的。
但是,后面在 application.properties
中配置 H2 后,项目跑起来后,突然说用户名和密码不正确。username = 'sa', password = ''
然后发现可以直接去创建一个用户:使用下列语句在 H2 中创建一个用户名为 root
密码为 root
的用户。
create user if not exists root password 'root';
alter user root admin true;
在项目中使用 username = 'root', password = 'root'
就好了。
id 自增问题
在使用的过程中未正常关闭 H2 的连接,可能会导致插入的数据 ID 自增为 32。这是因为当 H2 未正常关闭,系统会默认你丢失 cache 中设置的大小,默认为 32。
为此,官方的回应为:
- 忽略 ID 每次自动增长 32。
- 正常关闭 H2 数据库连接。
- 手动修改序列,将 cache size 修改的更小。
这里我直接将我使用的序列(sequences)设置不使用缓存。
alter sequence PUBLIC.SYSTEM_SEQUENCE_21E3056E_BDF1_4391_A071_888A3AB936B2 restart with 1 cycle no cache
这里的
SYSTEM_SEQUENCE_21E3056E_BDF1_4391_A071_888A3AB936B2
要换上自己对应表的序列。
这里的 1 是 ID 从 1 开始,以后不再使用缓存。如果将 1 改为 100。下一次插入数据就是从 100 开始插入。