Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:连接MySql和JDBC_Java_Android_Mysql_Jdbc_Android Asynctask - Fatal编程技术网

Java Android:连接MySql和JDBC

Java Android:连接MySql和JDBC,java,android,mysql,jdbc,android-asynctask,Java,Android,Mysql,Jdbc,Android Asynctask,我为一个问题挣扎了一段时间。我在一个免费的托管服务器()中安装了一个DB。数据库是MySql。我已经从导入了一个用于DB连接的jar文件。我已经在gradle中将其作为依赖项导入,我已经在清单和所有内容中设置了internet权限。我正在使用AsyncTasc进行连接 下面是包含方法的类 public class CheckLogin extends AsyncTask<String,String,String> { String z = ""; Boolean is

我为一个问题挣扎了一段时间。我在一个免费的托管服务器()中安装了一个DB。数据库是MySql。我已经从导入了一个用于DB连接的jar文件。我已经在gradle中将其作为依赖项导入,我已经在清单和所有内容中设置了internet权限。我正在使用AsyncTasc进行连接

下面是包含方法的类

public class CheckLogin extends AsyncTask<String,String,String>
{
    String z = "";
    Boolean isSuccess = false;

    @Override
    protected void onPreExecute()
    {
//            progressBar.setVisibility(View.VISIBLE);
    }

    @Override
    protected void onPostExecute(String r)
    {
//            progressBar.setVisibility(View.GONE);
        Toast.makeText(LoginActivity.this, r, Toast.LENGTH_SHORT).show();
        if(isSuccess)
        {
            Toast.makeText(LoginActivity.this , "Login Successfull" , Toast.LENGTH_LONG).show();
            //finish();
        }
    }

    @Override
    protected String doInBackground(String... params)
    {
        java.sql.Connection con;
        String usernam = params[0];
        String passwordd = params[1];
        if(usernam.trim().equals("")|| passwordd.trim().equals(""))
            z = "Please enter Username and Password";
        else
        {
            try
            {
                con = connectionclass(); 

                if (con == null)
                {
                    z = "Check Your Internet Access!";
                }
                else
                {
                    // Change below query according to your own database.
                    String query = "select * from owner where mail = '" + usernam.toString() + "' and password = '"+ passwordd.toString() +"'  ";
                    Statement stmt = con.createStatement();
                    ResultSet rs = stmt.executeQuery(query);
                    if(rs.next())
                    {
                        z = "Login successful";
                        isSuccess=true;
                        con.close();
                    }
                    else
                    {
                        z = "Invalid Credentials!";
                        isSuccess = false;
                    }
                }
            }
            catch (Exception ex)
            {
                isSuccess = false;
                z = ex.getMessage();
            }
        }
        return z;
    }
}


@SuppressLint("NewApi")
public java.sql.Connection connectionclass()
{
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    java.sql.Connection connection = null;
    String ConnectionURL = null;
    try
    {
          Class.forName("com.mysql.jdbc.Driver");

          connection = DriverManager.getConnection(url, un, pas);

    }
    catch (SQLException se)
    {
        Log.e("error here 1 : ", se.getMessage());
    }
    catch (ClassNotFoundException e)
    {
        Log.e("error here 2 : ", e.getMessage());
    }
    catch (Exception e)
    {
        Log.e("error here 3 : ", e.getMessage());
    }
    return connection;
}
其中服务器IP为,端口为3306,如站点所示。 还有我用来连接数据库的用户名和密码

我不认为我使用了错误的东西,但当我调试我的应用程序时,我仍然会遇到一个异常:

java.sql.SQLException:无法连接到任何主机,因为异常:java.net.SocketException:java.net.ConnectException:失败 要连接到/185.176.43.41(端口3306):连接失败:ECONREFUSSED (连接被拒绝)

**开始嵌套异常**

java.net.SocketException消息:java.net.ConnectException:未能 连接到/185.176.43.41(端口3306):连接失败:ECONREFUSE (连接被拒绝)

堆栈跟踪:

java.net.SocketException:java.net.ConnectException:连接失败 至/185.176.43.41(端口3306):连接失败:ECONREFUSE (连接被拒绝)在 com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143) 位于com.mysql.jdbc.MysqlIO.(MysqlIO.java:225) com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)位于 com.mysql.jdbc.Connection.(Connection.java:452)位于 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411) 位于java.sql.DriverManager.getConnection(DriverManager.java:179) java.sql.DriverManager.getConnection(DriverManager.java:213)位于 com.example.hotelreseaction.LoginActivity.connectionclass(LoginActivity.java:234) 在 com.example.hotelreseaction.LoginActivity$CheckLogin.doInBackground(LoginActivity.java:184) 在 com.example.hotelreseaction.LoginActivity$CheckLogin.doInBackground(LoginActivity.java:149) 在android.os.AsyncTask$2.call(AsyncTask.java:307)中 java.util.concurrent.FutureTask.run(FutureTask.java:237)位于 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:246)位于 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 运行(Thread.java:833)

**结束嵌套异常**

java.sql.Connection连接
为空,不使用(url、un、pas)

2天来我一直在想办法,我什么都试过了。我不知道SQL数据库,也不知道MySql和MSSql之间的区别,一直试图用jtds连接到这个主机,直到我知道我的数据库是MySql

如果有人能帮我的话,这个主机提供了一个MySql数据库,对吗

我可以用它来存储数据库,并用JDBC在我的android应用程序上检索数据吗


我尝试的方式是否正确?

您的数据库url
jdbc:mysql://185.176.43.41:3306/DB_name
在某些部分一定是错误的,DB_name不是名称,或者
185.176.43.41:3306
不是正确的主机。首先尝试使用localhost,在本地尝试,确保它有效,然后将您的url更改为另一个。

DB_名称只是一个示例,我的真实DB名称是正确的。所以问题是,我错过了一些与URL?代码正常吗?我这样问是因为我不知道该把重点放在哪里。感谢如果您配置mysql,那么您开始配置的一个方法就是使用端口3306的本地主机。如果你是新手,你可以使用mysql workbench这样的工具,它会给你很大的帮助,然后你可以创建一个本地主机实例:3306,启动mysql服务,然后运行你的应用程序(当然是更改地址和端口),这样端口3306就可以用于本地主机了?当然可以!我一直很乐意帮忙:)。你的问题很有道理,也很正确,别担心,你的方向是正确的。请阅读:
jdbc:mysql://185.176.43.41:3306/DB_name