2 java111212121 jaVa111212121 于 2016.05.05 11:05 提问

jdbc通过1433端口连接sqlserver数据库总是失败

最近在做一个小项目,在android的额产品里塞中直接用jdbc连接本地服务器的sqlserver数据库的时候出现这个错误:“请验证连接属性,并检查 SQL Server 的实例正在主机上运行, 且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接”

在网上查阅了很多资料,server的端口都是1433,IP2也启动了,sql实例也都启动了,server服务也重新启动了,防火墙也关闭了,但是就是一直连不上,大家有什么好的方法吗

这是简单的测试代码:
package com.example.myfinallytest;

import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import android.os.Bundle;
import android.os.StrictMode;

import java.sql.*;

public class MainActivity extends ActionBarActivity {

private TextView Text;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  
                        .detectDiskReads()  
                        .detectDiskWrites()  
                        .detectNetwork()  
                        .penaltyLog()  
                        .build());   
            StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  
                        .detectLeakedSqlLiteObjects()  
                        .detectLeakedClosableObjects()  
                        .penaltyLog()  
                        .penaltyDeath()  
                        .build());  


    Text = (TextView)findViewById(R.id.Test);
    System.out.println("1");
    Connect();
    System.out.println("2");
}

  public Connection Connect(){ 
      String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载驱动
      System.out.println("加载驱动");
      String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Test"; //连接数据库
      System.out.println("加载URL");
      String userName = "sa"; //服务器用户名
      String userPassword = "12345"; //服务器密码
      Connection Con = null; 
      try{ 
          System.out.println("进入try");
          Class.forName(driverName).newInstance(); //加载驱动到java虚拟机
          System.out.println("加载JAVA虚拟机");
          Con = DriverManager.getConnection(dbURL,userName,userPassword);
          Text.setText("连接成功!"); 
          System.out.println("连接成功!");
      }catch(Exception e){ 
          e.printStackTrace(); 
          Text.setText("连接失败!");
          System.out.println("连接失败!");
      }
      return Con;
  }

}

![![![图片说明](http://img.ask.csdn.net/upload/201605/05/1462417358_289781.png)图片说明](http://img.ask.csdn.net/upload/201605/05/1462417352_919748.png)图片说明](http://img.ask.csdn.net/upload/201605/05/1462417346_945896.png)图片说明

16个回答

zcf580230
zcf580230   2016.05.05 11:09

Android连接SqlServer数据库,一般情况下是连接后台服务端,服务端来做数据存取操作。 Android不能直接连接SqlServer数据库。
PS:如果虚拟机上需要连接本机ip,不是localhost,而是10.0.2.2

caozhy
caozhy 同意,客户端要么连sqlite这样的本地数据库,要么通过服务器访问sql server
一年多之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.05.05 14:14

安卓是不能直接连数据库的,只有sqllite这样的,因为实际运行是在手机上,,本地是没有sqlServer 的

liang_824
liang_824   2016.06.25 21:11

图片说明

CSDNXIAON
CSDNXIAON   2016.05.05 11:12

JDBC连接SqlServer2012通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败解决办法
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

coco2d_x2014
coco2d_x2014 哈哈。。。。。
大约一年之前 回复
linzewu100
linzewu100   2016.05.05 16:22

lcoalhost 你确定你的数据库安装在手机上? 改成远程IP地址试试

lbcab
lbcab   2016.05.12 12:51
wangxiaohua_147
wangxiaohua_147   2016.05.26 16:44

我们也学习sqlserver,数据库连接Java系统,只要按步骤来就好了,还有就是你的代码了。

meng20166
meng20166   Rxr 2016.06.02 14:11

Android连接SqlServer数据库,一般情况下是连接后台服务端,服务端来做数据存取操作。 Android不能直接连接SqlServer数据库。

u014629433
u014629433   2016.06.04 21:07

你应该说android怎么连接本机上的sql server。。你的IP写错了,,。。。

lyyybz
lyyybz   Rxr 2016.08.19 11:23

安卓是不能直接连数据库的,只有sqllite这样的,因为实际运行是在手机上,,本地是没有sqlServer 的

共16条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!