I\'ve got a MySQL server running on a local Linux machine. I haven\'t been faced to any problems communicating with it and executing SQL statements through a simple Java pro
The general misconception among Java developers who is moving to Android world is that everything that has been created for old good Java can be used on Android as well. Since Android usage of Java has violated the major Java principle, "write once, run everywhere", it's simply not true. I've seen people trying to use common Apache jars with Android, which resulted to weird errors (see Can't import Apache HTTP in Eclipse).
The same problems seem to be true for Java JDBC drivers and API's, e.g. see answers here: Connecting to MySQL from Android with JDBC
The common advice - each time when you try to use a 3rd party JAR with Android, check if it's compatible with the latter or if there is a port, which is specific for Android.
It is possible, if you use the correct connector. I use the connector 3.0.17, in some others examples the connector is mysql-connector-java-5.1.24-bin.jar
Import the java.sql
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
Use the next method to connect
public void conectarBDMySQL (String user, String password,
String ip, String port, String cat)
{
if (conexionMySQL == null)
{
String urlConexionMySQL = "";
if (cat!= "")
urlConexionMySQL = "jdbc:mysql://" + ip + ":" + port+ "/" + cat;
else
urlConexionMySQL = "jdbc:mysql://" + ip + ":" + port;
if (user!= "" & password!= "" & ip != "" & port!= "")
{
try
{
Class.forName("com.mysql.jdbc.Driver");
conexionMySQL = DriverManager.getConnection(urlConexionMySQL,
user, password);
}
catch (ClassNotFoundException e)
{
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_SHORT).show();
}
catch (SQLException e)
{
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
}
}
It works perfect for me, and i have had no problems!!!
Generally, the recommended approach is to post to a web service, and allow the web service to perform the required actions on the database. However, there is an open source library on GitHub which allows you to connect directly to the database server without the need of a web service.
The library is fairly new and has been tested against MySQL 5.1 -> 5.7 which should also be compatible with the equivalent MySQL version to MariaDB.
Disclaimer: I wrote it.