Я делаю простой запрос выбора к базе данных для системы входа. Я должен получить запись из базы данных, а затем сравнить пароли, но я борюсь за то, чтобы эта часть работала в основном на том, чтобы получить запрос выбора, чтобы вернуть то, что мне нужно. Это то, что у меня естьScala Slick Ошибка выполнения при выборе запроса
def example() = Action.async {
val myquery=sql"""SELECT password,id,email from profiles where [email protected]""".as[(String,Int,String)]
dbcall.run(myquery.map { Result =>
Result.headOption match {
case d: (String, Int,String) =>
if (BCrypt.checkpw("mypassword", d._1)) {
Ok("it worked")
}
else
Ok("No match")
case None => Ok("Empty")
}
}
}
Этот код работает, но он не возвращается обратно в правильном формате, он дает мне ошибку, указав:
[MatchError: Некоторые из них (($ 2a $ 12 $ HoNBl1DBlH .X, 32, hetmam @ yahoo.com))
Уведомление выше, это правильные значения, которые я хочу, однако я хочу строго получить первый столбец: пароль, который я думал Я сделал здесь ...
BCrypt.checkpw("mypassword", d._1)
Однако я просто продолжаю получать ошибку исключения совпадения на Result.headOption match, а не d._1 Предположим, что нужно указывать только значение столбца пароля?
Отличная благодарность за то, что просто реализовано, и оно работает – user1591668