I am struggling with an issue for some time now. I have a DB installed in a free hosting server (fdb3.freehostingeu.com). The DB is MySql. I have imported a jar file for the DB connection from here. I have import it as a dependency in the gradle, i have set the internet permissions in the Manifest and everything. I am using AsyncTasc for the connection.
Here is the class with the methods.
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;
}
I have set the url at
jdbc:mysql://185.176.43.41:3306/DB_name
where the server IP is and the port is 3306 as the site says. And the usernmae and password as I use to connect to the DB.
I dont think i use something wrong, but still when i debug my app i get an Exception:
java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.SocketException: java.net.ConnectException: failed to connect to /185.176.43.41 (port 3306): connect failed: ECONNREFUSED (Connection refused)
** BEGIN NESTED EXCEPTION **
java.net.SocketException MESSAGE: java.net.ConnectException: failed to connect to /185.176.43.41 (port 3306): connect failed: ECONNREFUSED (Connection refused)
STACKTRACE:
java.net.SocketException: java.net.ConnectException: failed to connect to /185.176.43.41 (port 3306): connect failed: ECONNREFUSED (Connection refused) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:225) at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805) at com.mysql.jdbc.Connection.(Connection.java:452) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411) at java.sql.DriverManager.getConnection(DriverManager.java:179) at java.sql.DriverManager.getConnection(DriverManager.java:213) at com.example.hotelreseration.LoginActivity.connectionclass(LoginActivity.java:234) at com.example.hotelreseration.LoginActivity$CheckLogin.doInBackground(LoginActivity.java:184) at com.example.hotelreseration.LoginActivity$CheckLogin.doInBackground(LoginActivity.java:149) at android.os.AsyncTask$2.call(AsyncTask.java:307) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:246) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:833)
** END NESTED EXCEPTION **
The java.sql.Connection connection
is null, it is not use the (url, un, pas)
Ive been trying to find a way 2 days now, i have tried everything. I have no idea on SQL databases and i cannot get the difference between the MySql and the MSSql, and keep trying to make a connection to this host with jtds untill i understand that my DB is MySql.
If someone can help me here, this host provides a MySql DB, right?
Can I use it to store a DB and retrieve the data on my android app with JDBC?
Is the way i am trying correct or not?