用户名密码

刚开始使用 IDEA 连接 H2 数据库时,使用 Embedded 连接方式,URL 为 jdbc:h2:~/h2/community 并没有使用用户名和密码,是没有问题的。
但是,后面在 application.properties 中配置 H2 后,项目跑起来后,突然说用户名和密码不正确。
username = 'sa', password = ''
然后发现可以直接去创建一个用户:使用下列语句在 H2 中创建一个用户名为 root 密码为 root 的用户。

  1. create user if not exists root password 'root';
  2. alter user root admin true;

在项目中使用 username = 'root', password = 'root' 就好了。

id 自增问题

在使用的过程中未正常关闭 H2 的连接,可能会导致插入的数据 ID 自增为 32。这是因为当 H2 未正常关闭,系统会默认你丢失 cache 中设置的大小,默认为 32。
为此,官方的回应为:

  • 忽略 ID 每次自动增长 32。
  • 正常关闭 H2 数据库连接。
  • 手动修改序列,将 cache size 修改的更小。

这里我直接将我使用的序列(sequences)设置不使用缓存。

  1. 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 开始插入。