Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ustawić nazwę użytkownika i hasło za pomocą generatora kodu źródłowego Slick?

Z kilku linków znalezionych w Internecie, a także na podstawie odpowiedzi cvogt, jest to minimum, które musisz zrobić.

Zauważ, że jest to ogólne rozwiązanie dla sbt. Jeśli masz do czynienia z frameworkiem do zabawy, może być ci łatwiej wykonać to zadanie za pomocą odpowiedniej wtyczki

Przede wszystkim potrzebujesz nowego projektu sbt ze względu na wszystkie zależności biblioteczne, do których należy się odwoływać, aby uruchomić sprawny generator źródeł.
Utwórz nowy projekt sbt, korzystając z tego samouczka:http://scalatutorials.com/beginner/2013/07/18/getting-started -z-sbt/
Najlepiej użyj metody Konfiguracja za pomocą gite8

Jeśli zdarzy się, że zadziała z Intellij, musisz utworzyć plik project/plugins.sbt i wstaw wewnątrz tej linii:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0") .
Wykonaj gen-idea w sbt, aby wygenerować projekt intellij.

Dzięki giter8 otrzymujesz automatycznie wygenerowany plik ProjectNameBuild.scala wewnątrz folderu projektu. Otwórz to i dołącz przynajmniej te zależności biblioteczne:

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
  )

gdzie scala version to zmienna private val scala_version = "2.10.3"

Teraz utwórz niestandardowy generator kodu źródłowego, który wygląda tak:

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

Na koniec musisz wywołać to execute metoda wewnątrz głównego obiektu projektu. Znajdź plik ProjectName.scala, który został automatycznie wygenerowany przez giter8.
W środku znajdziesz println zadzwoń, ponieważ jest to tylko aplikacja "hello world". Powyżej println zadzwoń do czegoś takiego:

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

W ten sposób za każdym razem, gdy wykonujesz sbt run masz zamiar automatycznie wygenerować klasy tabeli wymagane przez Slick



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. FLOT dane z MySQL przez PHP?

  2. Odzyskiwanie dostępu do utraconego hasła MySQL dla PHPMyAdmin na WAMP

  3. Wydajność sterownika XA w porównaniu ze sterownikiem JDBC innym niż XA?

  4. MySQL zgłasza błąd nieprawidłowej wartości ciągu

  5. Puste wyjście PHP z bazy danych MySQL dla longbloba