最近在做一个小项目,在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;
}
}
Android连接SqlServer数据库,一般情况下是连接后台服务端,服务端来做数据存取操作。 Android不能直接连接SqlServer数据库。
PS:如果虚拟机上需要连接本机ip,不是localhost,而是10.0.2.2
安卓是不能直接连数据库的,只有sqllite这样的,因为实际运行是在手机上,,本地是没有sqlServer 的
lcoalhost 你确定你的数据库安装在手机上? 改成远程IP地址试试
http://blog.csdn.net/stewen_001/article/details/19553173/
你可以参考一下这篇博文
我们也学习sqlserver,数据库连接Java系统,只要按步骤来就好了,还有就是你的代码了。
Android连接SqlServer数据库,一般情况下是连接后台服务端,服务端来做数据存取操作。 Android不能直接连接SqlServer数据库。
你应该说android怎么连接本机上的sql server。。你的IP写错了,,。。。
安卓是不能直接连数据库的,只有sqllite这样的,因为实际运行是在手机上,,本地是没有sqlServer 的
兄弟 多看书 别瞎搞 手机会爆的
server的端口都是1433,IP2也启动了,sql实例也都启动了,server服务也重新启动了,防火墙也关闭了????????
-------防火墙需要打开呀,要不然就设定个开放1433端口的规则!
即使联上,效率也很低啊,手机客户端毕竟不如电脑啊
没见过手机直接联数据库的,手机联app server ,app server 联 database server
安卓上不能连接sqlserver的,安卓有个自带的数据库SQLite.很小,不占资源,小程序一般就用这个用这个。
本地是没有sqlServer 的,你只能通过后台服务器调取sqlserver,android本地只能连接到sqlet