db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dyre Tjeldvoll <Dyre.Tjeldv...@oracle.com>
Subject Re: Problem inserting
Date Wed, 17 Apr 2013 08:07:09 GMT
On 04/16/13 01:46 PM, Alejandro Rodríguez González wrote:

> Basically, I insert using this code:
>
>          public void insertInputs(Set<Input> ri) throws Exception {
>                  PreparedStatement psInsert = null;
>                  Iterator<Input> it = ri.iterator();
>                  while (it.hasNext()) {
>                          Input in = it.next();

Note that doing it this way defeats the purpose of using prepared 
statements, since you create and prepare it each time through the loop. 
A better (faster) way would be to move the call to prepareStatement out 
of the loop. But it does
>                          psInsert = conn
>                                          .prepareStatement("insert into
> inputs(input_class,api) values (?, ?)");

Where does conn come from here? Are you sure it is in autocommit mode? 
It needs to be since you don't call conn.commit() explicitly. Also, 
you're using the default schema for your table. Are you sure it is what 
you believe it to be?


>                          psInsert.setString(1, in.getObject());

If Constants.APIS[this.api] does not change as you iterate, it does not 
need to be a parameter.

>                          psInsert.setString(2, Constants.APIS[this.api]);
>                          this.logger.log("Inserting input in db: " +
> in.getObject() + " - API[" + Constants.APIS[this.api] + "]");

I assume that you see this output when you run your program?

>                          psInsert.executeUpdate();

Place the close after the loop to re-use the prepared statement.

>                          psInsert.close();
>                  }
>          }


>
> It is supposed that in the following execution of my program, when I
> made the select statement to see the inputs in the database, it should
> give me results, but.. no results are provided. I attach you the first
> two executions of my program:
>
> First (database not created): http://pastebin.com/1k7R8Yup
> Second (database created. It is supposed that inputs table should
> contain data): http://pastebin.com/yzsK1q9w
>
> So.. as far as I understand, something is wrong in the "insert" but.. I
> don't know what.



>
> I hope someone can help me.
>
> Thanks!
>
> --
> Dr. Alejandro Rodríguez González - PhD
>
> Bioinformatics at Centre for Plant Biotechnology and Genomics UPM-INIA
> Polytechnic University of Madrid
> http://www.alejandrorg.com <http://www.alejandrorg.com/>
> Phone: +34 914524900 . Ext: 25550
>
>
> //Once the game is over, the king and the pawn go back in the same box.
> - Italian proverb//


Mime
View raw message