Hi chris!

I solved it this way



final DBSQLScript script =3D new DBSQLScript();

loop>>
       final DBCommand dbCommand =3D _db.createCommand();
       dbCommand.set(new DBSetExpr(column1, value1));
       ...
       dbCommand.set(new DBSetExpr(columnN, valueN));
       script.addStmt(dbCommand.getInsert());
<<loop

script.run(_db.getDriver(), cDestinationWrite, false);
script.clear();

What you think?

Jens



Von meinem iPad gesendet

Am 30.08.2012 um 18:38 schrieb Christopher Richmond <[email protected]>:

> I was thinking of doing something very similar to this, since I think one of 
> the most useful things about the library is the SQL generation, sparing other 
> developers from having to deal with string butchering which is error prone, 
> then allow them to pass the objects in to which I will simply extract the 
> query string to execute via pure JDBC.  
> 
> I also am taking a look at the source code and if i feel I can modify a patch 
> to allow batch inserts, I will submit it back.
> 
> Thanks!
> Chris
> 
> On Wed, Aug 29, 2012 at 11:43 PM, Rainer Döbele <[email protected]> wrote:
> Hi Christopher,
> 
>  
> 
> currently there is no support for Batch-Inserts in Empire-DB.
> 
>  
> 
> However you can combine direct JDBC and Empire-DB and e.g. let Empire-DB 
> create the SQL Command string for the Prepared statement.
> 
> In order to use Prepared Statement params use DBCommand.addParam(DataType 
> type, Object value).
> 
> See SampleAdvApp.commandParamsSample(…) method for an example.
> 
>  
> 
> If you find a good generic solution for this that is reusable for other 
> projects, we would be happy to receive your code in order to provide this 
> feature with an future release of Emprie-db.
> 
>  
> 
> Regards
> 
> Rainer
> 
>  
> 
>  
> 
> Von: Christopher Richmond [mailto:[email protected]] 
> Gesendet: Donnerstag, 30. August 2012 04:51
> An: user
> Betreff: Batch inserts
> 
>  
> 
> With pure JDBC I can do a PreparedStamement(ps) with batches for inserting 
> large numbers of rows(millions) with my embedded H2 database.  This works 
> fine(along with setting autocommit OFF on my connection) 
> 
>         int count = 0;
> 
>         
> 
>         for(int x = 1; x <= totalRows; x++){
> 
>           
> 
>           
> 
>           for(<each item of data I have, up to millions>){
> 
>             pst.setInt(colIndex, rowIndex);
> 
>           }
> 
>  
> 
>           pst.addBatch();
> 
>           if(++count % batchSize == 0) {
> 
>             pst.executeBatch();   //execute batches at specified invervals 
> (batchSize)
> 
>            
> 
>           }
> 
>  
> 
>         }
> 
>         
> 
>  
> 
>         pst.executeBatch(); // insert remaining records
> 
>  
> 
>         pst.close();
> 
>  
> 
> but I am now trying to use EmpireDB and it is unclear if I can do batch 
> inserts against the database usinge the EmpireDB api.  Is this possible and 
> is there sample code for how to configure or execute against the API do this?
> 
>  
> 
> In summary, I want batch insertion for large sets of data(millions of rows), 
> executing batches of inserts at regular intervals like I was doing with pure 
> JDBC above.
> 
>  
> 
> Thanks,
> 
> Chris
> 
> 

Reply via email to