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