Java、SQL 数据库连接

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

我是 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/

相关文章:

java - Hadoop 作业不会被杀死

java - 列表迭代器返回零

mysql ->、<、<>、= 内部连接条件的运算符

sql - 我可以在提交事务之前返回 SQL 过程吗?

sql - 如何在 SQL 中将 Float 转换为 Varchar

java - 如何在 spring 项目中为实体类和 DTO 自动生成 Junit 测试用例

c# - Entity Framework 和外键作为字符串

sql - 使用 SQL Server 中的表进行连接和求和的选择

sql-server - 在负载下刷新汇总表的最佳方法是什么?

java - Cucumber:场景中的使用文件