sql >> Base de Datos >  >> RDS >> Mysql

Establecer conexión agrupada a MySQL en android

Esta pregunta tiene 6 años y Mark tiene razón en que, en casi todos los escenarios que se te ocurran, JDBC en Android es tan sensato como tratar de usar una tostadora en el baño. Sin embargo, a veces hacemos las cosas porque podemos y no porque necesariamente debamos, y hoy tuve una razón justificable para querer hacer esto (para una aplicación muy específica que se ejecuta en un entorno inusual), y así es como encontré esta pregunta.

Abordar el NoClassDefFoundError primero, la razón por la que no es capturado por catch bloque es porque es un Error no es una Exception . Ambos Error y Exception heredar de Throwable , por lo que podría captar eso en su lugar:

catch (Throwable t)
{
    // This will catch NoClassDefFoundError
}

Creo que no es MySqlDataSource que no puede encontrar, pero una de las clases o interfaces de las que depende; en mi caso, fue javax.naming.Referenceable . Android no proporciona el javax.naming por lo que tratar de utilizar las funciones de agrupación del controlador Connector/J JDBC para MySQL no lo llevará muy lejos (podría intentar proporcionar las dependencias que faltan, pero ese camino probablemente lo lleve a la locura).

En su lugar, probablemente tendrá más suerte con la implementación de un grupo de conexiones de terceros. Hay varias bibliotecas de Java para hacer esto. Algunos de ellos funcionarán en Android. Uno que he verificado que funciona es HikariCP . Hay instrucciones para configurarlo aquí y, específicamente para MySQL, aquí .