H2数据库Java Servlet连接路径问题

了解技术

最近,我一直在研究将servlet与本地数据库一起使用。经过一些研究,我发现了H2数据库引擎Wikipedia)。这对我想要的东西来说是完美的,但是我的servlet的本地路径遇到了麻烦。

例子:

我需要在WebContent文件夹中创建H2数据库,以便将其作为项目的一部分。但是我似乎无法获得正确的代码来对其进行本地化。

示例代码:-H2.Jar-SQL数据库的连接字符串

             String url = "jdbc:h2:"+request.getContextPath()+"/emailDB;IFEXISTS=TRUE";
         Class.forName("org.h2.Driver");
            Connection conn = DriverManager.
                getConnection(url, "adminuser", "pass");

示例代码(错误):- H2.Jar-SQL数据库的连接字符串(输出)

org.h2.jdbc.JdbcSQLException: Database "C:/emailservlet/emailDB" not found [90013-174]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
at org.h2.message.DbException.get(DbException.java:172)
at org.h2.message.DbException.get(DbException.java:149)
at org.h2.engine.Engine.openSession(Engine.java:54)
at org.h2.engine.Engine.openSession(Engine.java:160)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139)
at org.h2.engine.Engine.createSession(Engine.java:122)
at org.h2.engine.Engine.createSession(Engine.java:28)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:105)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90)
at org.h2.Driver.connect(Driver.java:73)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at emailservlet.msdbcon(emailservlet.java:540)

如您所见,我遇到的问题是,即使即时消息请求了contextpath,我仍然仍然在写C:/。

如果您可以帮助我找出代码中的错误,将非常有帮助!

先感谢您!

斯帕先生

驱动程序期望可以在其中创建文件的文件系统路径。它通过使用C:驱动器的根目录将相对路径转换为绝对路径。要获取WebContent文件夹的绝对路径,您需要使用ServletContext#getRealPath()

将H2文件存储在WebContent文件夹中也不是一个好主意,您应该将它们存储在WEB-INF文件夹中,以使用户无法访问它。

以下是网址的格式

String path = getServletContext().getRealPath("/") + "/WEB-INF";
String url = "jdbc:h2:"+path+"/emailDB;IFEXISTS=TRUE";

这将在WEB-INF文件夹中创建H2文件。

H2Database.com网站上的“功能”页面获取的注意事项

  • 用于连接到本地数据库的数据库URL是jdbc:h2:[file:] []。前缀文件:是可选的。如果不使用或仅使用相对路径,则将当前工作目录用作起点
  • 路径和数据库名称的区分大小写取决于操作系统,但是建议仅使用小写字母。
  • 数据库名称必须至少三个字符长(File.createTempFile的限制)。
  • 数据库名称不得包含分号。
  • 要指向用户主目录,请使用〜/,如:jdbc:h2:〜/ test。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

H2数据库Java Servlet连接路径问题

来自分类Dev

如何从Java和H2 DB连接到H2数据库

来自分类Dev

从指定路径访问H2数据库

来自分类Dev

H2数据库连接字符串

来自分类Dev

连接到H2数据库

来自分类Dev

与h2数据库的连接错误:java.lang.NumberFormatException:零长度字符串

来自分类Dev

使用inMemory数据库时出现R2dbc H2问题

来自分类Dev

Hibernate H2数据库的相对路径

来自分类Dev

Spring Boot从类路径加载H2数据库文件

来自分类Dev

是否可以将MySQL Workbench连接到内存数据库中的H2?

来自分类Dev

如何允许多个用户同时连接到我的H2数据库?

来自分类Dev

如何在控制台中连接到WebServer模式的H2数据库?

来自分类Dev

连接到本地H2数据库的HTML表单

来自分类Dev

使用Datagrip客户端连接到H2数据库

来自分类Dev

连接到H2数据库时,DriverManager尝试使用mariadb驱动程序

来自分类Dev

将SymmetricDS连接到现有的H2数据库文件

来自分类Dev

H2数据库问题与选择查询-错误的结果

来自分类Dev

与H2嵌入式数据库的架构相关的问题

来自分类Dev

数据库可能已在使用中-H2问题

来自分类Dev

即使关闭连接后,数据仍然存在于h2数据库表中

来自分类Dev

嵌入式H2数据库:正在建立连接但未找到表

来自分类Dev

在内存数据库h2中保持连接打开多长时间?

来自分类Dev

从192升级到200时h2数据库的升级问题:比例不得大于精度

来自分类Dev

无法从Tomcat Java Servlet连接到H2

来自分类Dev

如何在Play Framework 2.4中使用相对于项目根目录的路径到H2数据库文件配置?

来自分类Dev

Play框架:在生产模式下使用h2数据库进行开发和postgresql,以及如何通过conf文件连接到postgresql

来自分类Dev

H2数据库的IOExceptions

来自分类Dev

H2数据库与unitils

来自分类Dev

Java Servlet中的数据库连接池

Related 相关文章

  1. 1

    H2数据库Java Servlet连接路径问题

  2. 2

    如何从Java和H2 DB连接到H2数据库

  3. 3

    从指定路径访问H2数据库

  4. 4

    H2数据库连接字符串

  5. 5

    连接到H2数据库

  6. 6

    与h2数据库的连接错误:java.lang.NumberFormatException:零长度字符串

  7. 7

    使用inMemory数据库时出现R2dbc H2问题

  8. 8

    Hibernate H2数据库的相对路径

  9. 9

    Spring Boot从类路径加载H2数据库文件

  10. 10

    是否可以将MySQL Workbench连接到内存数据库中的H2?

  11. 11

    如何允许多个用户同时连接到我的H2数据库?

  12. 12

    如何在控制台中连接到WebServer模式的H2数据库?

  13. 13

    连接到本地H2数据库的HTML表单

  14. 14

    使用Datagrip客户端连接到H2数据库

  15. 15

    连接到H2数据库时,DriverManager尝试使用mariadb驱动程序

  16. 16

    将SymmetricDS连接到现有的H2数据库文件

  17. 17

    H2数据库问题与选择查询-错误的结果

  18. 18

    与H2嵌入式数据库的架构相关的问题

  19. 19

    数据库可能已在使用中-H2问题

  20. 20

    即使关闭连接后,数据仍然存在于h2数据库表中

  21. 21

    嵌入式H2数据库:正在建立连接但未找到表

  22. 22

    在内存数据库h2中保持连接打开多长时间?

  23. 23

    从192升级到200时h2数据库的升级问题:比例不得大于精度

  24. 24

    无法从Tomcat Java Servlet连接到H2

  25. 25

    如何在Play Framework 2.4中使用相对于项目根目录的路径到H2数据库文件配置?

  26. 26

    Play框架:在生产模式下使用h2数据库进行开发和postgresql,以及如何通过conf文件连接到postgresql

  27. 27

    H2数据库的IOExceptions

  28. 28

    H2数据库与unitils

  29. 29

    Java Servlet中的数据库连接池

热门标签

归档