Я пытаюсь написать метод, который принимает имя пользователя в качестве входных данных и создает инструкцию SQL-запроса, которая затем выполняется. На данный момент я получаю NullPointer
, когда пытаюсь позвонить result.getObject()
.
Вот мой метод динамического создания оператора SQL:
fun getByUsername(name: String): User?{
val sql = """SELECT * FROM usertable WHERE username="$name";"""
val result = DatabaseController().trySql(sql)
if (result != null) {
if (!result.isBeforeFirst) {
println("User was not found...")
return null
} else {
println("User found....")
return User(result.getObject("username").toString(),
result.getObject("password").toString(),
result.getObject("admin").toString().toBoolean())
}
}
return null
}
Метод, который выполняет запрос:
fun trySql(sqlCommand: String): ResultSet? {
var conn = this.connect()
println("trySql()-------Running query $sqlCommand")
var result = conn?.createStatement()?.executeQuery(sqlCommand)
conn?.close()
return result
}
Имя пользователя, на котором я его запускаю, тоже есть в моей таблице, так что это не проблема. Мой метод, который создает строку в моей таблице, работает правильно, поэтому я знаю, что нет проблем с подключением к базе данных.
EDIT
Если я просто верну result
в trySql()
, я больше не получу никаких ошибок, но после чтения я должен закрыть соединения после использования?