sql >> Database teknologi >  >> RDS >> Oracle

Kan ikke løse fejl - java.sql.SQLEundtagelse:ORA-01000:maksimale åbne markører overskredet

Hvis du forsøger at udføre den samme handling 1000 gange, vil jeg anbefale genbrug den samme PreparedStatement eller ved at bruge >addBatch() og executeBatch() combo.

Hvis du planlægger at genbruge din PreparedStatement, er her noget, du kan gøre:

public void insertARow(PreparedStatement ps, ArrayList<String> row){
 //your code
}

public void calledMethod(){
 String insert = "INSERT INTO user.info(cola,colb) values(?,?)";
 PreparedStatement ps = null;

 try{
   ps = con.prepareStatement(insert);
   /**
    * Here you make the call to insertARow passing it the preparedstatement that you
    * have created. This in your case will be called multiple times.
    */
   insertARow(ps, row);
 }finally{
   if(ps != null){
     //close ps
   }
 }
}



  1. Fortsæt med at redde mange til mange

  2. Tilføjelse af billede til en database i Java

  3. MySQL:genbrug automatisk stigning under indsættelse

  4. Android - forsøg at genåbne et allerede lukket objekt:SQLiteQuery ved hjælp af loaderManager