[英]SQL Server jdbc connection
我在windows身份验证中在localhost上运行此代码片段但是出现了以下错误,但我已经在我的类路径中添加了sqljdbc4 jar,并且在从eclipse运行时我也在构建路径中添加了jar
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";
Connection conn = null;
String url = "jdbc:sqlserver://localhost\SQLEXPRESS;databasename=yatin";
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 = "truncate table cim";
stmt = conn.createStatement();
int flag = stmt.executeUpdate(query);
System.out.println("flag = "+flag);
conn.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
}
错误:
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)
请帮帮我。
此错误不会说“身份验证错误”,它会因“连接被拒绝”而显示“连接错误”。 这意味着您需要指定正确的端口号。 您需要检查SQL Server配置并更新连接字符串。
根据MSDN文档 ,连接字符串应如下所示:
jdbc:sqlserver://localhost:<insert_proper_port_here>\SQLEXPRESS;databasename=yatin
您没有提供用户名或密码,一旦您弄清楚了端口号,您可能需要这样做。 有关详细信息,请参阅参考文档。
我认为这是配置问题。
Go to Run -> SQL Server Configuration Manger
Expand -> SQL Server *version_no* Network Configuration
Then click on - "Protocol for SQLEXPRESS"
如果您发现TCP/IP
协议Disabled
状态,则需要enable
它。
此外,您还需要重新启动服务:打开cmd>键入Services,然后向下滚动到SQL Server(MSSQLServer),然后重新启动服务
首先,无论何时在URL中使用SQL实例名称,都必须指定//[serverName[\\\\instanceName][:portNumber]]databaseName
对于Eg: jdbc:sqlserver://localhost\\\\SQLEXPRESS:1433;databasename=yatin
一旦完成下一步: -
然后申请并确定
现在转到左窗格中SQL Server Configuration Manager下的SQL Server服务部分。 点击它
现在重新运行代码
你忘了提到实例名称。 请参阅构建连接URL说明如何在sqlserver中使用连接URL
如果你没有提到完整的服务器名,那么你会得到错误
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.".
我的服务器名称是V_UDAY\\FRAMEWORK,
我删除了URL
FRAMEWORK
实例(在Java代码中)并执行,然后我收到如下错误。
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host V_UDAY, 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(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.testsql.SqlServerDatabaseConnectionUsingJava.getLocalConnection(SqlServerDatabaseConnectionUsingJava.java:28)
at com.testsql.SqlServerDatabaseConnectionUsingJava.main(SqlServerDatabaseConnectionUsingJava.java:18)
Exception in getLocalConeection() The TCP/IP connection to the host V_UDAY, 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.".
在图像下方显示了带有slash
分隔的服务器名称
执行以下Java程序需要sqljdbc4。 下载sqljdbc4 jar或从Microsoft JDBC Driver 4.0 for SQL Server 。
使用Java连接到sqlserver的示例。 这里JSF
是数据库名称。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SqlServerDatabaseConnectionUsingJava {
private static Connection connection = null;
//1.jdbc driver name
private static String SQL_JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// 2. Database URL, V_UDAY\FRAMEWORK is ServerName and JSF is DataBase name
private static String URL = "jdbc:sqlserver://V_UDAY;instanceName=FRAMEWORK;databaseName=JSF";
//3.Database credentials
private static String USERNAME = "udaykiran";//UserName
private static String PASSWORD = "Pa55word";//Password
public static void main(String[] args) {
getLocalConnection();
}
public static Connection getLocalConnection() {
try {
Class.forName(SQL_JDBC_DRIVER);// Register jdbc driver
System.out.println("****Connect to Database****");
//4. open a connection
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
System.out.println("DataBase connect to: "+ connection.getMetaData().getDriverName());
System.out.println("URL: "+ connection.getMetaData().getURL());
setConnectionClose();
System.out.println("Database Connection Closed");
} catch (Exception e) {
e.printStackTrace();
System.err.println("Exception in getLocalConeection() "+e.getMessage());
}
return connection;
}
public static void setConnectionClose() throws SQLException {
if (connection != null) {
connection.close();
}
}
}
注意:如果您已删除实例名称,请在连接url
提及实例名称FRAMEWORK
。
根据Microsoft文档
String url = "jdbc:sqlserver://localhost\SQLEXPRESS:[your_port_tcp];databasename=yatin";
https://msdn.microsoft.com/pt-br/library/ms378428(v=sql.110).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.