Android 尝试连接到数据库时出现web服务错误

Android 尝试连接到数据库时出现web服务错误,android,mysql,database,eclipse,web-services,Android,Mysql,Database,Eclipse,Web Services,最近,我在搜索如何在eclipse中创建一个web服务来创建一个简单的登录页面,我创建了一个web服务,但我在这里遇到的错误是,当我调用此web服务以使其从数据库检索密码和用户名时,它给出了一个未知错误。我搜索得很好,但没有找到任何内容,因此请帮助我,我被困在这里 以下是错误: 代码如下: Android不理解localhost。请使用10.0.2.2而不是localhost,然后再试一次。如果您想从Android连接到MySQL数据库,只需执行以下步骤: 下载驱动程序 将其粘贴到androi

最近,我在搜索如何在eclipse中创建一个web服务来创建一个简单的登录页面,我创建了一个web服务,但我在这里遇到的错误是,当我调用此web服务以使其从数据库检索密码和用户名时,它给出了一个未知错误。我搜索得很好,但没有找到任何内容,因此请帮助我,我被困在这里

以下是错误: 代码如下:
Android不理解
localhost
。请使用
10.0.2.2
而不是
localhost
,然后再试一次。

如果您想从Android连接到MySQL数据库,只需执行以下步骤:

  • 下载驱动程序
  • 将其粘贴到android项目的libs文件夹中
  • 单击ConfigureBuildPath->AddJAR将jar包含到项目中
  • 在AndroidManifest.xml中检查INTERNET的权限
使用下一个代码进行连接:

try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(Exception e){
    System.err.println("Cannot create connection");
}
try{
    connection = DriverManager.getConnection("jdbc:mysql://192.168.xx.xx:3306/dbname","root","password");
    Statement statement = connection.createStatement();

    String query = "SELECT column1, column2 FROM table1 WHERE column3 = ";
    query = query +"'" +variable+"'";           
    ResultSet result = statement.executeQuery(query);
}catch(Exception e){
    System.err.println("Error");
}
建议:如果驱动程序的实例没有给出任何错误,但连接出现异常,则应尝试从清单中删除目标SDK版本,因为某些版本会出现问题


Ref:

我终于发现了问题,是在android端,我更改了参数以匹配web服务,一切都正常找到

更改您的
ip地址
而不是
本地主机
谢谢您重播,我做到了,但这不起作用,idk但这是web服务代码本地主机或ip重要吗??所以同样的问题有什么帮助吗?????请检查我的更新答案谢谢,我这样做了,它不工作,同样的错误仍然在这里,上面的代码是指网络服务,不是android,它会起作用吗??还有其他帮助吗?因为您是从android设备执行此代码,所以您需要告诉android,连接到我的localhost和android了解localhost,因为10.0.2.2错误显示您的索引超出范围。检查是否执行查询。我猜你的结果集是empt。检查你的用户表并尝试记录它是否包含任何数据。不,这是web服务代码,不是android应用程序的代码,取决于你的第二条评论如何检查查询??我使用eclipse创建服务,所以这可能是数据库和android应用程序之间的直接连接,对吧???因为我需要在他们之间使用aweb服务所以有什么建议吗,你必须使用Web服务,谷歌上有很多教程。我知道这一点,我从教程中学到了所有这些,我是android编程新手,所以我不知道如何解决这个错误。我做了一个服务,在手机和服务之间传输数据,一切都很好,但是,当我试图从数据库中获取数据时,我在web服务端遇到了这个错误,我搜索了每个提供java web服务教程的网站,但没有任何帮助说明您使用了
java
进行web服务?
package com.abod.abd;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class calculate {
    public String authentication(String userName,String password){

        String retrievedUserName = "";
        String retrievedPassword = "";
        String status = "";
        try{

            Class.forName("com.mysql.jdbc.Driver");
            Connection con =             DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","aa198965");
            PreparedStatement statement =  con.prepareStatement("SELECT * FROM `user`");

            ResultSet result = statement.executeQuery();

            while(result.next()){
                retrievedUserName = result.getString("username");
                retrievedPassword = result.getString("password");
            }

            if(retrievedUserName.equals(userName)&&retrievedPassword.equals(password)){
                status = "Success!";
            }

            else{
                status = "Login fail!!!";
            }

        }
        catch(Exception e){
            e.printStackTrace();
        }
        return status;
    }
}
try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(Exception e){
    System.err.println("Cannot create connection");
}
try{
    connection = DriverManager.getConnection("jdbc:mysql://192.168.xx.xx:3306/dbname","root","password");
    Statement statement = connection.createStatement();

    String query = "SELECT column1, column2 FROM table1 WHERE column3 = ";
    query = query +"'" +variable+"'";           
    ResultSet result = statement.executeQuery(query);
}catch(Exception e){
    System.err.println("Error");
}