2 bzu mei bzu_mei 于 2013.08.22 16:01 提问

JDBC连接SQL Server数据库

用windows身份验证,连接SQL Server数据库时,发生了异常。在网上找了,没找到什么有用的结论,特来请教。

这是代码:

private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://localhost;integratedSecurity=true;Database=master";   
static{
    try {
        Class.forName(DRIVER);
        System.out.println("获取驱动成功");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}
public static Connection getConnection() throws SQLException{

    Connection conn=DriverManager.getConnection(URL);
    return conn;
}

提示异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.microsoft.sqlserver.jdbc.AuthenticationJNI.GetDNSName(Ljava/lang/String;[Ljava/lang/String;Ljava/util/logging/Logger;)I
at com.microsoft.sqlserver.jdbc.AuthenticationJNI.GetDNSName(Native Method)
at com.microsoft.sqlserver.jdbc.AuthenticationJNI.GetDNSName(AuthenticationJNI.java:109)
at com.microsoft.sqlserver.jdbc.AuthenticationJNI.(AuthenticationJNI.java:63)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2229)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:243)
at com.util.DBUtilWindows.getConnection(DBUtilWindows.java:30)
at com.util.DBUtilWindows.main(DBUtilWindows.java:65)

3个回答

mobo12345
mobo12345   2013.12.17 15:36
已采纳

有关 Microsoft JDBC Driver for SQL Server 中还允许应用程序使用集成身份验证连接到数据库的新增功能的说明,请参阅使用 Kerberos 集成身份验证连接到 SQL Server。

JDBC 驱动程序支持通过 integratedSecurity 连接字符串属性在 Windows 操作系统上使用“类型 2”集成身份验证。若要使用集成身份验证,请将 sqljdbc_auth.dll 文件复制计算机中 Windows 系统路径下的 JDBC 驱动程序安装目录中。

连接到远程服务器上的默认端口:

jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true;

Yumicle
Yumicle   2013.08.23 11:27

具体看你的驱动包正确不?
url感觉有问题,看看官方的连接字符串,
你的用户名和密码都没有,
你确定你的数据库打开了远程连接,tcp/ip 命名管道,还有数据访问?

bzu_mei
bzu_mei 非常感谢你的回答。驱动包用的是sqljdbc4.jar。因为这次想用windows身份验证,试试怎么连接上数据库,所以没有用户名和密码。之前用SQL Server身份验证是能成功的。
接近 5 年之前 回复
bzu_mei
bzu_mei   2013.09.10 10:16

问题还未解决。。。求教。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
jdbc连接sqlserver数据库连接代码
jdbc连接sql数据库代码
sqljdbc.jar包,java链接sqlServer数据库驱动jar包
sqljdbc.jar包,java链接sqlServer数据库的驱动sqljdbc.jar包
jdbc sqlserver2008 连接代码加驱动包
jdbc sqlserver2008 连接代码加驱动包jdbc sqlserver2008 连接代码加驱动包jdbc sqlserver2008 连接代码加驱动包jdbc sqlserver2008 连接代码加驱动包jdbc sqlserver2008 连接代码加驱动包jdbc sqlserver2008 连接代码加驱动包经过反复测试的
java通过JDBC链接SQLServer2016
java通过JDBC链接SQLServer2016
SQl server 2012 jdbc 连接数据库驱动
SQl server 2012 jdbc 连接数据库驱动
kettle链接SQL server驱动 sqljdbc
kettle 链接SQL server驱动,高版本的jdk建议使用 sqljdbc4,其他的建议使用 sqljdbc。 kettle 链接数据库必须的。
MyBatis通过 JDBC连接 SQL server 数据库 最小例子
MyBatis通过 JDBC连接 SQL server 数据库 最小例子, 数据库为SQL server 2005,没有引用多余的库
JDBC连接sql server数据库需要使用的jar包
JDBC连接sql server数据库时需要用到的jar包,里面包含两个:sqljdbc,sqljdbc4,可以根据需求选择,谢谢下载!
JDBC连接SQL Server2008插入、修改、删除、查询代码
JDBC连接SQL Server2008 插入、修改、删除、查询操作的示例代码
jdbc连接sqlserver所需的三个jar包
java jdbc连接sqlserver所必须的三个jar包