我是 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;"
谢谢
最佳答案
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 是一个异常(exception))。
Microsoft JDBC 驱动程序的格式为:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
参见:Building the Connection URL .
从技术上讲,Microsoft 可以只允许其 <vendor-specific-url>
中包含数据库名称。并暗示它使用本地主机,但他们决定不这样做。
关于Java、SQL 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552389/