Если вы говорите о сохранении в базе данных SQL, то Anorm, безусловно, может справиться с этим за вас.
На самом базовом уровне вы можете создать таблицу длинных целых чисел в своей базе данных SQL, а затем использовать Anorm для сохранения списка. Предположим, что вы храните свои целые числа в таблице с одним столбцом, называемой UserActions
, с единственным столбцом, называемым action
:
def saveList(list: List[Long]) = {
DB.withConnection { implicit connection =>
val insertQuery = SQL("insert into UserActions(action) values ({action})")
val batchInsert = (insertQuery.asBatch /: list)(
(sql, elem) => sql.addBatchParams(elem)
)
batchInsert.execute()
}
}
Я собрал для вас небольшую демонстрацию и отправляю ее в Heroku, я скоро обновлю ссылку (редактировать: Heroku и я сегодня не ладим, извините).
Код находится в моем Github по адресу: https://github.com/ryantanner/anorm-batch-demo
Посмотрите в models/UserActions.scala, чтобы найти именно этот фрагмент. Остальное просто чепуха, чтобы сделать демо более интересным.
Теперь я бы сделал шаг назад и спросил себя, какая информация вам нужна об этих пользовательских операциях. Что семантически означает этот List[Long] значит? Вам нужно хранить больше информации об этих действиях пользователя? Должно ли это быть что-то вроде строк (UserID, PageVisited, Timestamp)?
person
Ryan
schedule
19.03.2013