我想使用滑动条从下面的示例表中查询数据
id | username | password
----+----------+------------------------------------
1 | admin | admin@123
2 | user | user@123
查询是
SELECT password FROM users WHERE username = 'user';
我已经阅读了很多有关堆栈溢出的示例,但它们是更复杂的查询
我想要使用slick这样的简单查询。
首先定义一个代表您的SQL表的类
class UsersTable(tag: Tag) extends Table[User](tag, "users") {
def email: Rep[String] = column[String]("email", O.PrimaryKey)
def password: Rep[String] = column[String]("password")
def registered: Rep[Boolean] = column[Boolean]("registered")
def firstName: Rep[Option[String]] = column[Option[String]]("first_name")
def lastName: Rep[Option[String]] = column[Option[String]]("last_name")
def username: Rep[Option[String]] = column[Option[String]]("username", O.Unique)
def contact: Rep[Option[String]] = column[Option[String]]("contact")
override def * = (email, password, registered, firstName, lastName, username, contact) <> (User.tupled, User.unapply)
}
然后为您的表创建一个DAO,该DAO具有选择'one'行的方法。像这样:
class UsersDao @Inject()(protected val dbConfigProvider: DatabaseConfigProvider)
(implicit executionContext: ExecutionContext) extends HasDatabaseConfigProvider[JdbcProfile] {
import profile.api._
private val Users = TableQuery[UsersTable]
def selectOne(email: String): Future[Option[User]] = db.run(Users.filter(_.email === email).result.headOption)
}
现在在您的服务班级中读取记录是这样的>>
class AuthService @Inject()(usersDao: UsersDao) { def someFunction(.. some_params ..) { usersDao.selectOne(someParama.email).flatMap { case Some(user: User) => //Do something if user exists case None => //Do something else if user doesn't exist } } }
如果您有兴趣探索用Scala编写的游戏项目,请查看此项目https://github.com/ashishtomer/fastscraping-web
您只能在这种情况下使用plain SQL query: