Would this jdbc feature not be an option to implement this?

http://www.tutorialspoint.com/jdbc/jdbc-batch-processing.htm

Cheers,
F

On 23 July 2015 at 17:21, Rainer Döbele <[email protected]> wrote:

>  Hi Daniel,
>
>
>
> actually, enabling prepared statements is quite simple:
>
> It’s a global setting on DBDatabase so just call:
>
>
>
> db.setPreparedStatementsEnabled(true);
>
>
>
> This will automatically make DBRecord to use a prepared statement.
>
> However to avoid other bottlenecks you set the record values by index
> instead by column like this:
>
> int c1 = rec.getFieldIndex(column1);
>
> ...
>
> rec.setValue(c1, value);
>
>
>
> even more efficient is to use a DBCommand instead of a DBRecord.
>
> This is done somewhat like this:
>
>
>
> // Prepare command
>
> DBCommand cmd = db.createCommand();
>
> DBCmdParam p1 = cmd.addParam(column1, null);
>
> cmd.set(column1.to(p1));
>
> DBCmdParam p2 = cmd.addParam(column2, null);
>
> cmd.set(column2.to(p2));
>
> DBCmdParam p3 = cmd.addParam(column3, null);
>
> cmd.set(column3.to(p3));
>
>
>
> // insert loop
>
> for (int i=0; i<10000; i++)
>
> {
>
>      p1.setValue(/* some value for column1 */);
>
>      p2.setValue(/* some value for column2 */);
>
>      p3.setValue(/* some value for column3 */);
>
>      // insert
>
>      //
> System.out.println(cmd.getInsert()+"-->"+StringUtils.toString(cmd.getParamValues()));
>
>      db.executeInsert(cmd, conn);
>
> }
>
>
>
> This is about as fast as it can get.
>
>
>
> However one problem remains:
>
> Each insert is still an individual statement.
>
> Some databases allow multiple inserts in one single statement.
>
> There is no support yet for those kind of statements as they are
> non-standard and not supported by all databases.
>
> But it be a good idea for an improvement.
>
>
>
> Regards
>
> Rainer
>
>
>
>
>
> *from:* [email protected] [mailto:[email protected]]
> *to:* [email protected]
> *re:* Bulk Insert // Prepared Statement Insert
>
>
>
> Hi folks,
>
>
>
> I need to quickly insert ~100.000 rows into a data base table, ideally
> within a web request.
>
>
>
> When setting auto-commit 'off' the process via DBRecord is already much
> faster, of course. However, I'm wondering whether there is also support for
> Prepared Statements via EmpireDb, so that I don't need to touch plain old
> JDBC.
>
>
>
> Cheers,
>
> Daniel
>

Reply via email to