सीरियल इंसर्ट
सबसे आसान तरीका होगा inserts एक <के भीतर कोड>सिंक.foreach ।
मान लें कि आपने स्कीमा कोड जनरेशन का उपयोग किया है और आगे यह मानते हुए कि आपकी तालिका का नाम "नंबरटेबल" है
//Tables file was auto-generated by the schema code generation
import Tables.{Numbertable, NumbertableRow}
val numberTableDB = Database forConfig "NumberTableConfig"
हम एक फंक्शन लिख सकते हैं जो इंसर्शन करता है
def insertIntoDb(num : Int) =
numberTableDB run (Numbertable += NumbertableRow(num))
और उस फंक्शन को सिंक में रखा जा सकता है
val insertSink = Sink[Int] foreach insertIntoDb
Source(0 to 100) runWith insertSink
बैच किए गए निवेशन
आप एक बार में एन इंसर्ट को बैच करके सिंक कार्यप्रणाली को और बढ़ा सकते हैं:
def batchInsertIntoDb(nums : Seq[Int]) =
numberTableDB run (Numbertable ++= nums.map(NumbertableRow.apply))
val batchInsertSink = Sink[Seq[Int]] foreach batchInsertIntoDb
इस बैच किए गए सिंक को प्रवाह
. द्वारा खिलाया जा सकता है जो बैच समूहीकरण करता है:
val batchSize = 10
Source(0 to 100).via(Flow[Int].grouped(batchSize))
.runWith(batchInsertSink)