sql >> データベース >  >> RDS >> Mysql

Slickのソースコードジェネレーターでユーザー名とパスワードを設定するにはどうすればよいですか?

    インターネットで見つかったいくつかのリンクから、またcvogtの回答に基づいて、これはあなたがする必要のある最小限のことです。

    これはsbtの一般的なソリューションであることに注意してください。 Play Frameworkを扱っている場合は、関連するプラグインを使用してこのタスクを実行する方が簡単な場合があります。

    まず、slickソースジェネレータを実行するために参照する必要があるすべてのライブラリ依存関係があるため、新しいsbtプロジェクトが必要です。
    このチュートリアルを使用して新しいsbtプロジェクトを作成します。 http://scalatutorials.com/beginner/2013/07/18/getting-started -with-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と呼ぶ必要があります メインプロジェクトオブジェクト内のメソッド。 giter8によって自動生成されたファイルProjectName.scalaを見つけます。
    その中にprintlnがあります。 これは単なる「HelloWorld」アプリケーションであるため、呼び出します。 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. Hibernateネイティブクエリでの挿入はjava.util.Dateでは機能しません

    2. 複数のフォームと1つのPHPレシーバー

    3. COM相互運用機能を使用すると、.NETデータベースの呼び出しが遅くなり、クエリアナライザーを介して高速になります

    4. SQL Server-テーブルの行が更新されるとどうなりますか?