在Java里如何使用H2数据库进行开发_Java嵌入式数据库说明-java教程

选h2因其java原生实现、无native依赖、启动快、内存占用低,适合测试与轻量应用;sqlite需jni,derby对jdk版本敏感;h2默认不兼容mysql语法,需mode参数启用兼容模式。

为什么选 H2 而不是 SQLite 或 Derby

H2 是 Java 原生实现的嵌入式数据库,不需要额外 native 依赖,启动快、内存占用低,适合单元测试、原型开发和轻量级桌面应用。H2 的 JDBC URL 格式统一(jdbc:h2:mem:、jdbc:h2:file:),驱动类名固定为 org.h2.Driver,不像 SQLite 需要 JNI 库,也不像 Derby 对 JDK 版本敏感。

常见误区是直接把 H2 当成 MySQL 用——它默认不兼容 MySQL 语法,比如 INSERT IGNORE、ON DUPLICATE KEY UPDATE 都不支持,除非显式启用兼容模式。

如何配置内存模式与文件模式的连接 URL

内存模式适合测试,进程退出即丢数据;文件模式持久化,但要注意路径权限和相对路径解析逻辑(H2 默认以 JVM 启动目录为基准)。

  • jdbc:h2:mem:testdb —— 纯内存,每次新建连接都是新库,需加 ;DB_CLOSE_DELAY=-1 才能让多个连接共享同一内存实例
  • jdbc:h2:file:./data/sample —— 写入当前目录下的 sample.mv.db 文件,推荐加 ;AUTO_SERVER=TRUE 支持多进程访问(避免 Database may be already in use 错误)
  • jdbc:h2:~/test —— 使用用户主目录,路径更稳定,适合桌面应用

注意:URL 中不能漏掉冒号,jdbc:h2:mem 会报 File not found;文件模式首次连接会自动建库,但目录必须存在,否则抛 java.io.IOException: Directory doesn't exist。

立即学习“Java免费学习笔记(深入)”;

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 在Java里如何使用H2数据库进行开发_Java嵌入式数据库说明-java教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4004340+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4004341+
  • 本周更新: 0+
  • 最后更新: 2026-03-16