# RMI und Datenbank Objekte



## Newcomer2007 (15. Mai 2007)

Hallo zusammen,

bin ziemlich am verzweifeln, ich soll von der Client Seite ein PreparedStatement zusammenbauen und dieses dann aus der Server Seite ausführen.

Da das PreparedStatement nicht Serializable ist bekomme ich eine Exception.

Meine Vermutung ist jetzt, dass dies garnicht möglich ist, oder hat jemand eine Idee wie das funktionieren kann ? 
Bin für jeden Tip dankbar.

 :lol:


----------



## Ullenboom (20. Mai 2007)

Ich würde das so interpretieren, dass du den String mit den Platzhaltern vom PreparedStatement auf der Clientseite zusammenbaust und serverseitig zur Datenbank gibst.

Grüße

 Christian


----------



## Guest (21. Mai 2007)

Beim Prepared Statement, ersetzt man doch im nachhinein die Werte für die ?.
Und genau da liegt mein Problem


----------



## Ullenboom (21. Mai 2007)

Also ist das PreparedStatement schon auf der Serverseite und nur die Argumente müssen übermittelt werden? Oder soll auch der String für's PS übermittelt werden?

Vielleicht kann das Folgende (ungetestet!) eine Lösung sein:


```
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class TransferablePreparedStatement implements Serializable
{
  private static final long serialVersionUID = 8677249848420549797L;

  private final String sql;
  private final Serializable[] objects;

  public TransferablePreparedStatement( String sql, Serializable... objects  ) {
    this.sql = sql;
    this.objects = objects;
  }

  void excecute( Connection con ) throws SQLException
  {
    PreparedStatement ps = con.prepareStatement( sql );

    for ( int i = 0; i < objects.length; i++ )
      ps.setObject( i + 1, objects[i] );
    
    ps.executeUpdate();
  }
}
```

Grüße

 Christian


----------

