【问题标题】:Can we create a Connection Object in Java without actually establishing a Connection我们可以在不实际建立连接的情况下在 Java 中创建连接对象吗
【发布时间】:2017-08-22 12:11:34
【问题描述】:

我知道Connection 是一个接口,使用DriverManager 获得连接的所有基本方法是什么?但它的作用是创建并打开一个连接并返回它。那么,有没有办法在 Java 中创建一个 Connection 或任何类似的对象,它可以从一个连接字符串中提供元数据、dbName 等属性?

【问题讨论】:

  • 为什么不直接解析连接字符串呢?看看:stackoverflow.com/a/11733697/2508770
  • @Emax 他说的是数据库连接;不是网址?!
  • 使用mockito模拟数据库连接
  • @GhostCat "或java中任何类似的对象,它可以从连接字符串中给我元数据、dbName 等属性",连接字符串是一个url,那么解析它有什么问题?
  • 请参考使用连接对象获取数据库详细信息。 stackoverflow.com/questions/7116517/…

标签: java jdbc connection-string mssql-jdbc


【解决方案1】:

不,不连接就无法获得Connection(除非您自己存根接口)。

听起来您的数据库名称在现有代码中的某处被硬编码。如果是这样,也许您可​​以将其提取为一个常量,您的新代码也可以引用该常量。然后,您将直接将数据库名称作为String,而不是通过Connection 对象间接获得。如果数据库名称嵌入在连接 URL 中,您可能必须将其分开并构造 URL。例如

public static final String DATABASE_NAME = "MyDatabase";
private static final String CONNECTION_URL = "jdbc:sqlserver://localhost;databaseName=" + DATABASE_NAME;

最好将连接详细信息与代码分开存储,例如在程序启动时读取的属性文件中——尽管这需要对现有代码稍作改动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 2018-09-12
    • 2023-03-11
    • 2022-12-04
    • 2011-03-30
    相关资源
    最近更新 更多