JDBC连接sqlserver失败???

朔北冥 2016-11-29 05:17:20
我通过cmd的telnet命令连接sqlserver的1433端口成功了,但是通过个DriverManager.getConnection()方法却连接失败??求大神帮助:代码:

public static void main(String[] args) {
String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//SQL数据库引擎
String connectDB="jdbc:sqlserver://.\\SQLEXPRESS:1433;DatabaseName=mysql";
//数据源
try {
//加载数据库引擎,返回给定字符串名的类
Class.forName(JDriver);
}catch(ClassNotFoundException e)
{
//e.printStackTrace();
System.out.println("加载数据库引擎失败");
System.exit(0);
}
System.out.println("数据库驱动成功");

try {
String user="sa";
//这里只要注意用户名密码不要写错即可
String password="12345";
Connection con=DriverManager.getConnection(connectDB,user,password);
//连接数据库对象
System.out.println("连接数据库成功");
Statement stmt=con.createStatement();
//创建SQL命令对象

//创建表
System.out.println("开始创建表");
//创建表SQL语句
String query= "create table TABLE1(ID NCHAR(2),NAME NCHAR(10))";
stmt.executeUpdate(query);//执行SQL命令对象
System.out.println("表创建成功");

//输入数据
System.out.println("开始插入数据");
String a1="INSERT INTO TABLE1 VALUES('1','旭哥')";
//插入数据SQL语句
String a2="INSERT INTO TABLE1 VALUES('2','伟哥')";
String a3="INSERT INTO TABLE1 VALUES('3','张哥')";
stmt.executeUpdate(a1);//执行SQL命令对象
stmt.executeUpdate(a2);
stmt.executeUpdate(a3);
System.out.println("插入数据成功");

//读取数据
System.out.println("开始读取数据");
ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE1");//返回SQL语句查询结果集(集合)
//循环输出每一条记录
while(rs.next()){
//输出每个字段
System.out.println(rs.getString("ID")+"\t"+rs.getString("NAME"));
}
System.out.println("读取完毕");

//关闭连接
stmt.close();//关闭命令对象连接
con.close();//关闭数据库连接
}catch(SQLException e){
e.printStackTrace();
System.out.print(e.getErrorCode());
//System.out.println("数据库连接错误");
System.exit(0);
}
}


执行后控制台输出:
数据库驱动成功
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 . 的 TCP/IP 连接失败。错误:“null。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
0 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1033)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)

...全文
333 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xia105711 2016-11-30
  • 打赏
  • 举报
回复
推荐个好用的vpn http://my.yizhihongxing.com/aff.php?aff=3313
SSHorSSM 2016-11-30
  • 打赏
  • 举报
回复
localhost 代表的是本地的意思 ,一般来说代表IP地址的话就是127.0.0.1 ,你的那个点,只是适合sqlserver
SSHorSSM 2016-11-30
  • 打赏
  • 举报
回复
引用 6 楼 qq_34392185 的回复:
jdbc:sqlserver://.\\SQLEXPRESS:1433;DatabaseName=mysql 这段有点懵逼!
这个你从哪学来的啊
SSHorSSM 2016-11-30
  • 打赏
  • 举报
回复
引用 5 楼 qq_36860250 的回复:
兄弟,你倒是结贴啊,我需要积分
这个你从哪学来的啊
qq_34392185 2016-11-30
  • 打赏
  • 举报
回复
jdbc:sqlserver://.\\SQLEXPRESS:1433;DatabaseName=mysql 这段有点懵逼!
SSHorSSM 2016-11-30
  • 打赏
  • 举报
回复
兄弟,你倒是结贴啊,我需要积分
SSHorSSM 2016-11-29
  • 打赏
  • 举报
回复
是127.0.0.1 上面多了一个点
SSHorSSM 2016-11-29
  • 打赏
  • 举报
回复
引用 2 楼 emoheithree 的回复:
[quote=引用 1 楼 qq_36860250 的回复:] 我一般都是这样的 jdbc:sqlserver://localhost:1433;DatabaseName=数据库名
成功了。 万分感谢!!!! 为什么我用数据库服务器名不可以?[/quote]你那种方法我是没见过的,我只用过localhost和127..0.0.1这两种,结贴咯,我需要积分
朔北冥 2016-11-29
  • 打赏
  • 举报
回复
引用 1 楼 qq_36860250 的回复:
我一般都是这样的 jdbc:sqlserver://localhost:1433;DatabaseName=数据库名
成功了。 万分感谢!!!! 为什么我用数据库服务器名不可以?
SSHorSSM 2016-11-29
  • 打赏
  • 举报
回复
我一般都是这样的 jdbc:sqlserver://localhost:1433;DatabaseName=数据库名

62,614

社区成员

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

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