sql >> Databáze >  >> RDS >> Mysql

Jak nastavit uživatelské jméno a heslo pomocí generátoru zdrojového kódu Slick?

Z několika odkazů nalezených na internetu a také na základě odpovědi cvogt je to minimum, co musíte udělat.

Upozorňujeme, že toto je obecné řešení pro sbt. Pokud máte co do činění s herním rámcem, může být snazší provést tento úkol pomocí příslušného pluginu

Nejprve potřebujete nový projekt sbt kvůli všem závislostem knihoven, na které je potřeba odkazovat, aby mohl běžet generátor hladkého zdroje.
Vytvořte nový projekt sbt pomocí tohoto návodu:http://scalatutorials.com/beginner/2013/07/18/getting-started -with-sbt/
Používejte raději metodu Nastavení pomocí giter8

Pokud to náhodou funguje s Intellij, musíte vytvořit soubor project/plugins.sbt a vložte dovnitř tohoto řádku:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0") .
Proveďte gen-idea v sbt k vygenerování projektu intellij.

S giter8 získáte automaticky generovaný soubor ProjectNameBuild.scala ve složce projektu. Otevřete toto a zahrňte alespoň tyto závislosti knihovny:

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
  )

kde verze scala je proměnná private val scala_version = "2.10.3"

Nyní vytvořte vlastní generátor zdrojového kódu, který vypadá takto:

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)
    }
  }
}

Nakonec to musíte zavolat execute metoda uvnitř hlavního objektu projektu. Najděte soubor ProjectName.scala, který byl automaticky vygenerován giter8.
Uvnitř najdete println zavolejte, protože toto je pouze aplikace „ahoj světe“. Nad println nazvěte něco takového:

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"
)

Tímto způsobem pokaždé, když spustíte sbt run třídy Table požadované Slickem budete generovat automaticky



  1. Mohu slepě nahradit všechny funkce mysql_ funkcí mysqli_?

  2. Co je DBMS? – Komplexní průvodce systémy správy databází

  3. MySQL:Automatické zvýšení dočasného sloupce v příkazu select

  4. Ukládání obrázků do polí bajtů v databázi PostgreSQL