Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để thiết lập tên người dùng và mật khẩu với trình tạo mã nguồn của Slick?

Từ một số liên kết được tìm thấy trên internet và cũng dựa trên câu trả lời của cvogt, đây là điều tối thiểu bạn cần làm.

Lưu ý rằng đây là giải pháp chung cho sbt. Nếu bạn đang xử lý khung chơi, bạn có thể thấy dễ dàng hơn khi thực hiện tác vụ này với plugin có liên quan

Trước hết, bạn cần một dự án sbt mới vì tất cả các phụ thuộc thư viện cần được tham chiếu để chạy trình tạo nguồn mượt mà.
Tạo dự án sbt mới bằng cách sử dụng hướng dẫn này: http://scalatutorials.com/beginner/2013/07/18/getting-started -with-sbt /
Tốt hơn là sử dụng phương pháp Thiết lập bằng giter8

Nếu nó hoạt động với Intellij thì bạn cần tạo tệp project/plugins.sbt và chèn vào bên trong dòng này:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0") .
Thực thi gen-idea trong sbt để tạo một dự án intellij.

Với giter8, bạn nhận được một tệp được tạo tự động ProjectNameBuild.scala bên trong thư mục dự án. Mở phần này và bao gồm ít nhất các phần phụ thuộc thư viện sau:

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
  )

trong đó phiên bản scala là biến private val scala_version = "2.10.3"

Bây giờ, hãy tạo trình tạo mã nguồn tùy chỉnh giống như sau:

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

Cuối cùng, bạn cần gọi execute này phương thức bên trong đối tượng dự án chính. Tìm tệp ProjectName.scala được tạo tự động bởi giter8.
Bên trong nó, bạn sẽ tìm thấy một println gọi vì đây chỉ là một ứng dụng "xin chào thế giới". Trên println gọi một cái gì đó như vậy:

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

Theo cách này mỗi khi bạn thực thi sbt run bạn sẽ tự động tạo các lớp Bảng theo yêu cầu của 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. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:trong mysql

  2. Sự khác biệt thực tế giữa `REPLACE` và` INSERT ... ON DUPLICATE KEY UPDATE` trong MySQL là gì?

  3. Trường TEXT tương thích trong mysql và hsqldb

  4. SQL - truy vấn con cho kết quả hàng đầu không theo thứ tự

  5. Làm thế nào để rời tham gia nhiều một đến nhiều bảng trong mysql?