【问题标题】:Scala Slick inserting multiple random rows into PostgreSql databaseScala Slick 将多个随机行插入 PostgreSql 数据库
【发布时间】:2017-03-22 19:14:23
【问题描述】:

我需要在 PostgreSQL 表中插入多行(大约 1 行)随机数。此代码将随机数插入一列。我怎样才能让它同时向所有列插入随机数据?

导入 slick.driver.PostgresDriver.simple._

object Main {

  class Users(tag: Tag) extends Table[(Int, String, String)](tag, "users") {
    def id = column[Int]("id")

    def username = column[String]("username")

    def miestas = column[String]("miestas")

    def * = (id, username, miestas)
  }

  def main(args: Array[String]): Unit = {

    val connectionUrl = "jdbc:postgresql://localhost/test?user=postgres&password=kurmis"

    Database.forURL(connectionUrl, driver = "org.postgresql.Driver") withSession {
      implicit session =>
        val users = TableQuery[Users]

        for (a <- 1 to 10) {
          val r = scala.util.Random
          users.map(_.username) += r.nextInt.toString

        }

        //Insert
        val r = scala.util.Random
        users.map(_.username) += r.nextInt.toString
        println("pabandom")

        }
    }
  }

【问题讨论】:

    标签: postgresql scala slick


    【解决方案1】:

    The documentation 有这个例子:

    people.map(p => (p.name, p.age, p.addressId)) += ("M Odersky",12345,1)
    

    和等价的SQL:

    insert into PERSON (NAME, AGE, ADDRESS_ID) values ('M Odersky', 12345, 1)
    

    所以在你的情况下,你可能会这样写:

    users.map(u => (u.username, u.miestas)) += (r.nextInt.toString, r.nextInt.toString)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-16
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 2011-01-30
      • 2020-11-04
      相关资源
      最近更新 更多