Java 如何将表导入另一个类(/object??),以便在另一个类/对象中对其运行查询?[slick 3.0][scala]

Java 如何将表导入另一个类(/object??),以便在另一个类/对象中对其运行查询?[slick 3.0][scala],java,mysql,scala,slick,slick-3.0,Java,Mysql,Scala,Slick,Slick 3.0,我有两个表定义在一个 class Patients(tag: Tag) extends Table[(String, String, Int, String)](tag, "Patientss") { def PID = column[String]("Patient Id", O.PrimaryKey) def Gender = column[String]("Gender") def Age = column[Int]("Age") def Ethni

我有两个表定义在一个

 class Patients(tag: Tag) extends Table[(String, String, Int, String)](tag, "Patientss") {
    def PID = column[String]("Patient Id", O.PrimaryKey)

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

    def Age = column[Int]("Age")

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

    def * = (PID, Gender, Age, Ethnicity)
  }

  val patientsss = TableQuery[Patients]

  class DrugEffect(tag: Tag) extends Table[(String, String, Double)](tag, "DrugEffectss") {

    def DrugID = column[String]("Drug ID", O.PrimaryKey)

    def PatientID = column[String]("Patient_ID")

    def DrugEffectssss = column[Double]("Drug Effect")

    def * = (DrugID, PatientID, DrugEffectssss)

    def Patient = foreignKey("Patient_FK", PatientID, patientsss)(_.PID)
  }

  val d_effects = TableQuery[DrugEffect]
我还填写了这个特定对象/类中的表格

我想知道如何在另一个对象中调用已填充的表,以便作为一个类访问
DrugEffect
Patients
,然后对表本身运行查询

我希望我说的很清楚,我对自己在做什么一无所知

我所说的运行查询的意思如下:

val q1 = for {
    c <- patientsss if (c.Age === 20 && c.Gender === "F")
    s <- d_effects if (s.DrugEffectssss > 10.0)
  } yield (c.PID, s.DrugID)
val q1=for{

c您需要在单独的类中使用DB API和表。您可以执行以下操作:

import tables.Tables

class SeparateClass extends HasDatabaseConfig[JdbcProfile] {
  val dbConfig = DatabaseConfigProvider.get[JdbcProfile](Play.current)

  import driver.api._

  def get(id: Long) = {
    db.run(Tables.DrugEffect.d_effects.filter(_.id === id).result)
  }
}

我明白了,我会有3个文件:一个,我在这里定义了所有的表,一个,我调用表来填充它们,还有一个,处理结果填充的数据?我会做
d_effects=TableQuery[tables.DrugEffect]
是的,听起来不错。主要的事情是在加载数据库配置后导入DB API,然后您可以对DB做任何事情。表定义只是一个定义,它没有什么特别的-它解释了表的结构。当您执行
DB.run
时,它使用这个表来确定在哪里可以找到什么。D用于创建表格时。您提到的代码段是放在我填写数据的文件中还是放在我定义表格的文件中?当前在单独的文件中定义了表格,但在我填写代码的文件中不可用。我导入了表格。DrugEffect
但DrugEffect不可用/无法解析我在回答中给出的代码是您在每个文件中执行DB操作所需的最低代码。解析问题可能有两个原因:1.DrugEffect的导入不正确(是否在app下的Tables包中?),2.未加载DB API(你也有我提到的所有扩展名、配置等吗?)你说的“应用程序下”是什么意思?它在Tables.scala文件中,在Tables类下的一个子类DrugEffect中。在该文件中,我还有
val db=Database.forConfig(“h2mem1”)
我认为这与您的代码相同?我试图在填充表格的文件中调用d_effects=TableQuery[Tables.DrugEffect]