Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengatur nama pengguna dan kata sandi dengan generator kode sumber Slick?

Dari beberapa link yang ada di internet dan juga berdasarkan jawaban cvogt ini adalah minimal yang harus anda lakukan.

Perhatikan bahwa ini adalah solusi umum untuk sbt. Jika Anda berurusan dengan kerangka kerja bermain, Anda mungkin merasa lebih mudah untuk melakukan tugas ini dengan plugin yang relevan

Pertama-tama Anda memerlukan proyek sbt baru karena semua dependensi perpustakaan yang diperlukan untuk direferensikan agar generator sumber slick dapat dijalankan.
Buat proyek sbt baru menggunakan tutorial ini:http://scalatutorials.com/beginner/2013/07/18/getting-started -dengan-sbt/
Sebaiknya gunakan metode Setup using giter8

Jika kebetulan bekerja dengan Intellij maka Anda perlu membuat file project/plugins.sbt dan masukkan di dalam baris ini:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0") .
Jalankan gen-idea di sbt untuk menghasilkan proyek intellij.

Dengan giter8 Anda mendapatkan file ProjectNameBuild.scala yang dibuat secara otomatis di dalam folder proyek. Buka ini dan sertakan setidaknya dependensi perpustakaan ini:

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
  )

di mana versi scala adalah variabel private val scala_version = "2.10.3"

Sekarang buat generator kode sumber khusus yang terlihat seperti itu:

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

Akhirnya Anda perlu memanggil ini execute metode di dalam objek proyek utama. Temukan file ProjectName.scala yang dibuat secara otomatis oleh giter8.
Di dalamnya Anda akan menemukan println panggilan karena ini hanyalah aplikasi "halo dunia". Di atas println panggil sesuatu seperti itu:

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

Dengan cara ini setiap kali Anda menjalankan sbt run Anda akan membuat kelas Tabel yang dibutuhkan oleh Slick secara otomatis



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql dapatkan jumlah total dan filter dalam satu kueri

  2. SQL Query:urutkan berdasarkan panjang karakter?

  3. Masalah memiliki banyak database?

  4. Saat mengimpor file mysqldump ERROR 1064 (42000) di dekat ' ■/ ' di baris 1

  5. SQLSTATE[HY000]:Kesalahan umum:1298 Zona waktu tidak diketahui atau salah:jendela 'UTC'