но при попытке подключения через андроид приложение вылетает. Код подключения прилагается, что я делаю не так?

Код: Выделить всё
private val url = "jdbc:mysql://localhost:3306/db_sql"
private val username = "root"
private val passwordUrl = "XXX"
private fun getConnection(): Connection {
Class.forName("com.mysql.jdbc.Driver")
return DriverManager.getConnection(url, username, passwordUrl)
}
Код: Выделить всё
fun getEventsByDate(roomId: Int, date: String): List {
val connection = getConnection()
val query = "SELECT * FROM events WHERE idROOM =? AND data =?"
val preparedStatement = connection.prepareStatement(query)
preparedStatement.setInt(1, roomId)
preparedStatement.setDate(2, java.sql.Date.valueOf(date))
val resultSet = preparedStatement.executeQuery()
val events = mutableListOf()
while (resultSet.next()) {
val event = Event(
data = resultSet.getDate("data").toString(),
time = resultSet.getString("time"),
place = resultSet.getString("place"),
event = resultSet.getString("event"),
)
events.add(event)
}
connection.close()
return events
}
Код: Выделить всё
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:948)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:403)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2266)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2015)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:768)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:403)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323)
at java.sql.DriverManager.getConnection(DriverManager.java:580)
at java.sql.DriverManager.getConnection(DriverManager.java:218)
at com.example.helper1.MySqlHelper.getConnection(MySqlHelper.kt:19)
at com.example.helper1.MySqlHelper.getEventsByDate(MySqlHelper.kt:134)
at com.example.helper1.RoomsFragment.changeScrollView(RoomsFragment.kt:869)
Также добавлю, что при запуске приложения я использую не эмулятор, а обычный телефон.
Подробнее здесь: https://stackoverflow.com/questions/788 ... l-database
Мобильная версия