用驱动包连接数据库出现的问题

adventurous 2010-05-10 12:34:44
我建了个连接数据库的程序,把从官网上下载的驱动包(sqljdbc4.jar)正确导入了,然后去连接SQL Server数据库,
出现了连接问题,我的链接代码是:
public class GetConnection {
private static final String DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL = "jdbc:sqlserver://localhost:7777;databaseName=restaurant;integratedSecurity=true;";

public static Connection getConnection(){
Connection conn = null;
try{
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(URL);
}catch(SQLException e){
e.printStackTrace();
}catch(ClassNotFoundException ce){
ce.printStackTrace();
}
return conn;
}
}
错误提示是:
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 7777 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1049)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at ConnectionManager.GetConnection.getConnection(GetConnection.java:24)
at ConnectionManager.GetFoodName.getFoodNames(GetFoodName.java:26)
at testconnection.Main.main(Main.java:22)
java.lang.NullPointerException
at ConnectionManager.GetFoodName.getFoodNames(GetFoodName.java:27)
at testconnection.Main.main(Main.java:22)
我之后把防火墙关掉或者把localhost:后面数字改成1433还是出现同样的错误。
...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lynn_20043745 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 adventurous 的回复:]
引用 10 楼 lynn_20043745 的回复:
你用的端口是7777,把你的TCP/IP协议下IP地址里TCP端口改成7777,然后启用TCP/IP协议,重启服务

改TCP/IP协议的方法是不是在开始菜单的SQL server工具里的那个配置
[/Quote]
是的 开始-->程序-->Microsoft SQL Server 2005-->配置工具-->SQL Server 配置管理器-->SQL Server 2005 网络配置-->MSSQLSERVER协议
adventurous 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 crazylaa 的回复:]

conn = DriverManager.getConnection(URL);

用户名和密码呢?
[/Quote]
因为有这一句,integratedSecurity=true;觉得就不用用户名和密码了吧,这个连接语句是我在下载的文件中找到的,有用户名和密码的情况我也试过,都设成了"sa",但还是不行。我装数据库的时候,是把安全类型设置成了,
windows authenticate
xiesisi3 2010-05-10
  • 打赏
  • 举报
回复
conn = DriverManager.getConnection(URL, username, password);
zfq642773391 2010-05-10
  • 打赏
  • 举报
回复
连接字符串里没有数据库用户名和密码 啊
crazylaa 2010-05-10
  • 打赏
  • 举报
回复
conn = DriverManager.getConnection(URL);

用户名和密码呢?
adventurous 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lynn_20043745 的回复:]
你用的端口是7777,把你的TCP/IP协议下IP地址里TCP端口改成7777,然后启用TCP/IP协议,重启服务
[/Quote]
改TCP/IP协议的方法是不是在开始菜单的SQL server工具里的那个配置
水中影子 2010-05-10
  • 打赏
  • 举报
回复
服务启动没?
TCP/IP端口改成7777
Lynn_20043745 2010-05-10
  • 打赏
  • 举报
回复
你用的端口是7777,把你的TCP/IP协议下IP地址里TCP端口改成7777,然后启用TCP/IP协议,重启服务
yueguangkai001 2010-05-10
  • 打赏
  • 举报
回复
看下你的sqlserver的localhost,还有远程的1433端口没有没被禁用
popair 2010-05-10
  • 打赏
  • 举报
回复
sql server配置管理器里,TCP/IP协议打开,看看TCP/IP的端口是1433吗?
charles361 2010-05-10
  • 打赏
  • 举报
回复
检查用户名,密码,以及url,端口号,一般都是这几个问题
BaronHsu 2010-05-10
  • 打赏
  • 举报
回复
SqlServer配置那边的tcp/ip协议服务要打开
风吹雨碎 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 adventurous 的回复:]

错误:“connect timed out。请验证连接属性,并检查 SQL Server 的实例正在主机上运行
[/Quote]
应该是需要加入username 和password,还有确保你的SQLServer是正常启动的!

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧