Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да настроите потребителско име и парола с генератора на изходен код на Slick?

От няколко връзки, намерени в интернет, а също и въз основа на отговора на cvogt, това е минимумът, който трябва да направите.

Обърнете внимание, че това е общо решение за sbt. Ако имате работа с рамка за игра, може да ви е по-лесно да изпълните тази задача със съответния плъгин

На първо място, имате нужда от нов sbt проект поради всички зависимости от библиотеката, които трябва да бъдат посочени, за да може да работи генераторът на гладки източници.
Създайте новия sbt проект, като използвате този урок:http://scalatutorials.com/beginner/2013/07/18/getting-started -с-sbt/
За предпочитане е да използвате метода Настройка с помощта на giter8

Ако се случи да работи с Intellij, тогава трябва да създадете файл project/plugins.sbt и вмъкнете вътре в този ред:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0") .
Изпълнете gen-idea в sbt, за да генерирате intellij проект.

С giter8 получавате автоматично генериран файл ProjectNameBuild.scala в папката на проекта. Отворете това и включете поне тези зависимости от библиотеката:

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
  )

където версията на scala е променливата private val scala_version = "2.10.3"

Сега създайте персонализиран генератор на изходен код, който изглежда така:

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

Накрая трябва да извикате това execute метод в основния обект на проекта. Намерете файла ProjectName.scala, който беше автоматично генериран от giter8.
Вътре в него ще намерите println обадете се, тъй като това е просто приложение за "здравей свят". Над println наречете нещо подобно:

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

По този начин всеки път, когато изпълнявате sbt run ще генерирате автоматично класовете на таблицата, изисквани от 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. Не мога да инсталирам mysql-python (по-нови версии) в Windows

  2. mysql_fetch_array() очаква параметър 1 да бъде проблем с ресурсите

  3. Не може да се импортира MySQLdb - python - Windows 8.1

  4. Пребройте колко реда са вмъкнати от последната SQL заявка

  5. Използване на IN клауза с MySQL с посочени стойности