JDBC连接自定义sqlserver数据库实例名(多个实例)

时间:2021-07-20 04:49:53

java语言中,通过jdbc访问sqlserver2005(2008)数据库默认实例可以按常用的写法来写url连接。代码如下:

Connection cn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=demo", "sa","sa");

其中localhost为sqlserver2005数据库ip,Demo为数据库名。

自命名的sqlserver数据库实例(实例名:SQL2008R2)的数据库又是如何访问?经过查资料和摸索发现url写法如下:

con = DriverManager.getConnection("jdbc:sqlserver://localhost;instanceName=SQL2008R2; DatabaseName=Demo", "sa","sa");

也可以这样写:

Connection cn = DriverManager.getConnection("jdbc:sqlserver://localhost//SQL2005; DatabaseName=Demo", "sa","sa");

注意,连接数据库自命名实例的url中没有端口号1433,这是SQLServer中的管理机制决定的。

1. 如果机器上安装的是SQLServer的默认实例(MSSQL),那么就是通过TCP 默认1433端口远程连接。如果你打开了防火墙,需要放开1433端口。
2.  如果机器上有多个数据库实例,例如 SQLServer2005, SQLServer2008, SQLServer2008R2等,而你的SQLServer2008R2安装在Named instance,例如localhost\MyInstance。这样连接默认是UDP 1434端口(可以自己指定,在第三点的第二个选项卡IP address里面IPALL里面输入SQL运行的端口),并且需要打开SQL Browser service服务。在服务 - SQL Browser service,设置为自动启动。如果你打开了防火墙,需要放开UDP 1434端口。