【问题标题】:Java, SQL Database ConnectionJava、SQL 数据库连接
【发布时间】:2013-03-21 15:59:43
【问题描述】:

我是 C# 开发人员,我对 Java 了解不多,通常在 C# 中,当我想连接到数据库时,我使用以下命令:

static SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");

我在 MSDN 中阅读了有关在 java 中建立数据库连接(Sql Server 2008)的教程,说地址必须以这种方式声明:

String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=JavaDB;user=UserName;password=*****";

我想如果有什么方法可以像我在 C# 中那样声明 url,我的意思是代替

"jdbc:sqlserver://localhost:1433;" 

我直接指向数据库

"AttachDbFilename=|DataDirectory|\Database.mdf;"

谢谢

【问题讨论】:

  • 在 Java 世界中,没有其他方法。
  • 我认为连接字符串是驱动程序特定的,所以 JDBC 语法会与 .NET 驱动程序不同。
  • 无法通过jdbc api直接指向database_name.mdf...
  • 作为一名开始使用 .net 技术的 Java 开发人员,我建议您不要专注于而是尝试学习新事物。请注意,如果您打算使用 Java(或任何其他 PL),您应该对新概念/想法持开放态度,否则您会大吵大闹,不会学到任何东西。

标签: java sql sql-server sql-server-2008


【解决方案1】:

URL 的第一部分由 JDBC 规范规定,因此所有驱动程序都将遵循结构 jdbc:<vendor-identifier>:<vendor-specific-url>

在 Java 中创建连接(至少通过 java.sql.DriverManager)独立于创建连接的实际 Driver 实现(在 C# 中,您创建类型化的供应商特定连接)。

第一部分,jdbc:<vendor-identifier> 用作选择机制,因此Driver 可以快速决定是否接受 URL。从技术上讲,多个驱动程序实现可以接受一个 URL 并创建连接。 <vendor-identifier> 通常是数据库或公司的名称。

<vendor-specific-url> 通常遵循正常的 URL 约定(MS SQL Server JDBC URL 是一个例外)。

微软JDBC驱动的格式是:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

请参阅:Building the Connection URL

从技术上讲,微软本可以只允许在其 <vendor-specific-url> 中使用数据库名称,并暗示它使用 localhost,但他们决定不这样做。

【讨论】:

    【解决方案2】:

    SQL JDBC驱动的官方文档并没有提到任何这样的事情

    http://msdn.microsoft.com/en-us/library/ms378428.aspx

    http://msdn.microsoft.com/en-us/library/ms378672(v=sql.110).aspx

    所以我认为这是不可能的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      相关资源
      最近更新 更多