jdbc连接sql Server 数据库时用的数据库名是指实例名吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc连接sql Server 数据库时用的数据库名是指实例名吗?相关的知识,希望对你有一定的参考价值。
java语言中,通过jdbc访问sqlserver2005(2008)数据库默认实例可以按常用的写法来写url连接。代码如下:
[java] view plain copy
<span style="font-size:12px;">Connection cn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=demo", "sa","sa");</span>
其中localhost为sqlserver2005数据库ip,Demo为数据库名。
自命名的sqlserver数据库实例(实例名:SQL2008R2)的数据库又是如何访问?经过查资料和摸索发现url写法如下:
[java] view plain copy
<span style="font-size:12px;">con = DriverManager.getConnection("jdbc:sqlserver://localhost;instanceName=SQL2008R2; DatabaseName=Demo", "sa","sa");</span>
也可以这样写:
[java] view plain copy
<span style="font-size:12px;">Connection cn = DriverManager.getConnection("jdbc:sqlserver://localhost//SQL2005; DatabaseName=Demo", "sa","sa");</span>
注意,连接数据库自命名实例的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端口。
上面的localhost才是实例名,后面的DatabaseName是真正的数据库的名字本回答被提问者采纳 参考技术B 第一个:用户名是你的SQL登录的用户名,如果你一直没有,那么你可以用window登录之后修改SA密码,或者,你新建一个登录名,然后给他分配超级管理员的权限即可。
第二个:应该是一定要用用户名的,我给你找了一句“Connection con = DriverManager.getConnection(url, "myLogin", "myPassword"); ”
使用JDBC连接SQL SERVER的数据库后,读取出来的中文数据是乱码?
使用JDBC连接SQL SERVER的数据库后,读取出来的中文数据是乱码
如果可以使用OLEDB连接时,加入Auto Translate=false时就不会出现乱码
但是有些报表软件又不可以使用OLEDB连接
有哪位高手知道怎么解决这个问题呢?
用户使用DBSync软件做MySQL的数据同步,MySQL的数据库字符集为utf8mb4,连接字符串采用ODBC 3.51,在任务设置的step2,列出的中文数据是乱码,在连接字串中加入:charset=gb2312,问题解决。
以上是关于jdbc连接sql Server 数据库时用的数据库名是指实例名吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用JDBC连接SQL SERVER的数据库后,读取出来的中文数据是乱码?