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

Bagaimana aliran reaktif digunakan di Slick untuk memasukkan data

Sisipan Serial

Cara termudah adalah dengan melakukan menyisipkan dalam Sink.foreach .

Dengan asumsi Anda telah menggunakan pembuatan kode skema dan selanjutnya dengan asumsi tabel Anda bernama "NumberTable"

File
//Tables file was auto-generated by the schema code generation
import Tables.{Numbertable, NumbertableRow} 

val numberTableDB = Database forConfig "NumberTableConfig"

Kita dapat menulis fungsi yang melakukan penyisipan

def insertIntoDb(num : Int) = 
  numberTableDB run (Numbertable += NumbertableRow(num))

Dan fungsi itu dapat ditempatkan di Wastafel

val insertSink = Sink[Int] foreach insertIntoDb

Source(0 to 100) runWith insertSink

Sisipan Berkelompok

Anda dapat memperluas metodologi Sink lebih lanjut dengan mengelompokkan N sisipan sekaligus:

def batchInsertIntoDb(nums : Seq[Int]) = 
  numberTableDB run (Numbertable ++= nums.map(NumbertableRow.apply))

val batchInsertSink = Sink[Seq[Int]] foreach batchInsertIntoDb

Wastafel batch ini dapat diberi makan oleh Flow yang melakukan pengelompokan batch:

val batchSize = 10

Source(0 to 100).via(Flow[Int].grouped(batchSize))
                .runWith(batchInsertSink)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan sintaks pembatas MySQL

  2. Proyek Java selesai, sekarang membuat file jar atau .exe (dengan Database)

  3. Menyembunyikan ID objek basis data yang sebenarnya di url

  4. Penjadwal Acara MySQL pada waktu tertentu setiap hari

  5. MySql - hitung perbedaan waktu untuk beberapa baris