sql >> Database >  >> RDS >> Mysql

Hoe een gebruikersnaam en wachtwoord in te stellen met de broncodegenerator van Slick?

Van verschillende links gevonden op internet en ook gebaseerd op het antwoord van de cvogt is dit het minimum dat u hoeft te doen.

Merk op dat dit een algemene oplossing is voor sbt. Als je te maken hebt met een spelframework, vind je het misschien gemakkelijker om deze taak uit te voeren met de relevante plug-in

Allereerst heb je een nieuw sbt-project nodig vanwege alle bibliotheekafhankelijkheden waarnaar moet worden verwezen om de gelikte brongenerator te laten werken.
Maak het nieuwe sbt-project met behulp van deze tutorial:http://scalatutorials.com/beginner/2013/07/18/getting-started -with-sbt/
Gebruik bij voorkeur de methode Setup met giter8

Als het toevallig werkt met Intellij, moet je het bestand project/plugins.sbt maken en voeg binnen deze regel in:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0") .
Voer gen-idea uit in sbt om een ​​intellij-project te genereren.

Met giter8 krijg je een automatisch gegenereerd bestand ProjectNameBuild.scala in de projectmap. Open dit en voeg ten minste deze bibliotheekafhankelijkheden toe:

libraryDependencies ++= List(
    "mysql" % "mysql-connector-java" % "5.1.27",
    "com.typesafe.slick" %% "slick" % "2.0.0",
    "org.slf4j" % "slf4j-nop" % "1.6.4",
    "org.scala-lang" % "scala-reflect" % scala_version
  )

waarbij scala version de variabele is private val scala_version = "2.10.3"

Maak nu de aangepaste broncodegenerator die er zo uitziet:

import scala.slick.model.codegen.SourceCodeGenerator

object CustomSourceCodeGenerator {

import scala.slick.driver.JdbcProfile

import scala.reflect.runtime.currentMirror

def execute(url: String,
          jdbcDriver: String,
          user: String,
          password: String,
          slickDriver: String,
          outputFolder: String,
          pkg: String) = {
val driver: JdbcProfile = currentMirror.reflectModule(
  currentMirror.staticModule(slickDriver)
).instance.asInstanceOf[JdbcProfile]

driver.simple.Database.forURL(
  url,
  driver = jdbcDriver,
  user = user,
  password = password
).withSession {
  implicit session =>
    new SourceCodeGenerator(driver.createModel).writeToFile(slickDriver, outputFolder, pkg)
    }
  }
}

Ten slotte moet je dit execute . noemen methode in het hoofdprojectobject. Zoek het bestand ProjectName.scala dat automatisch is gegenereerd door giter8.
Daarin vind je een println bel omdat dit slechts een "hallo wereld" -toepassing is. Boven println noem zoiets:

CustomSourceCodeGenerator.execute(
url = "jdbc:mysql://127.0.0.1/SOME_DB_SCHEMA?characterEncoding=UTF-8&useUnicode=true",
slickDriver = "scala.slick.driver.MySQLDriver",
jdbcDriver = "com.mysql.jdbc.Driver",
outputFolder = "/some/path",
pkg = "com.pligor.server",
user = "root",
password = "xxxxxyourpasswordxxxxx"
)

Op deze manier elke keer dat u sbt run uitvoert je gaat automatisch de door Slick vereiste tabelklassen genereren



  1. Hoe de laatste invoeg-ID in Oracle te verkrijgen met MyBatis?

  2. Kolomstring splitsen in meerdere kolommenstrings

  3. Git bash op Windows 7. mysqldump-opdracht werkt niet

  4. Hoe een dynamisch tekstvak (rij) toe te voegen en op te slaan in de database met behulp van PHP