yat*_*nbc 10 java sql-server-2005 jdbc
在我的以下程序中,我尝试在Windows身份验证中使用jdbc连接MSSQL Server.但得到以下错误
import java.io.*;
import java.sql.*;
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
class Cms_truncate
{
public static void main(String[] args)
{
Calendar cal = new GregorianCalendar();
//String name="cmscim";
//String filename = "D:\\programs\\Tomcat 6.0\\webapps\\timescape\\canteen_scheduller\\CMS_CSV\\cms_cim\\"+ name+"-"+cal.get(Calendar.YEAR) +"-" +(cal.get(Calendar.MONTH)+1) + "-"+cal.get(Calendar.DATE)+".csv";
Connection conn = null;
String url = "jdbc:sqlserver://localhost:1433;databasename=CMS_TIMES_MAIN;integratedSecurity=true";
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String userName = "";
String password = "";
Statement stmt;
try
{
Class.forName(driver);//.newInstance();
conn = DriverManager.getConnection(url,userName,password);
String query = "select * from cim where sapId=10025331";
stmt = conn.createStatement();
int flag = stmt.executeUpdate(query);
System.out.println("flag = "+flag);
conn.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在Windows身份验证模式下使用SQL Server.我是否需要设置其他东西来在Windows身份验证中使用jdbc连接MSSQL.
错误:
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
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(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Cms_truncate.main(Cms_truncate.java:28)
Run Code Online (Sandbox Code Playgroud)
小智 14
使用Windows身份验证:
String url ="jdbc:sqlserver://PC01\inst01;databaseName=DB01;integratedSecurity=true";
Run Code Online (Sandbox Code Playgroud)
使用SQL身份验证:
String url ="jdbc:sqlserver://PC01\inst01;databaseName=DB01";
Run Code Online (Sandbox Code Playgroud)
小智 8
您需要在C:/ windows/System32文件夹中添加sqljdbc_auth.dll.您可以从http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774下载它.
小智 7
请尝试执行以下步骤:
integratedSecurity=true像这样添加到JDBC URL:
Url: jdbc:sqlserver://<<Server>>:<<Port>>;databasename=<<DatabaseName>>;integratedsecurity=true
Run Code Online (Sandbox Code Playgroud)确保在项目构建路径中添加sqljdbc驱动程序4或更高版本(sqljdbc.jar):
java.sql.DatabaseMetaData metaData = connection.getMetaData();
System.out.println("Driver version:" + metaData.getDriverVersion());
Run Code Online (Sandbox Code Playgroud)为您的项目添加VM参数:
从DB安装的服务器中找到sqljdbc_auth.dll文件(C:\Program Files\sqljdbc_4.0\enu\auth\x86),或从此链接下载。
将dll文件放在您的项目文件夹中,然后指定VM参数,如下所示:VM Argument: -Djava.library.path="<<DLL File path till folder>>"
注意:检查您的Java版本32/64位,然后相应地添加32/64位版本dll文件。
从您的异常跟踪来看,此问题似乎有多种可能性
1)。您必须检查端口“ 1433”是否被防火墙阻止。如果发现它被阻止,则您必须编写“入站规则”。如果在控制面板-> Windows防火墙->高级设置(在左侧找到选项)-> 入站规则中找到它。
2)。在SQL Server配置管理器中,您的TCP/IP协议将处于禁用模式。因此,您必须启用它。
您需要在 Sql Server 配置管理器应用程序中启用 SQL Server TCP/IP 协议。您可以在 SQL Server 网络配置中查看该协议。
| 归档时间: |
|
| 查看次数: |
77540 次 |
| 最近记录: |