# PreparedStatement



## jean20 (20. Dez 2004)

Hallo, 

ich habe ein PreparedStatement erstellt und will jetzt eine Abfrage machen mit einem bestimmten Parameter.
ICh möchte jetzt ein ResultSet zurückhaben. Der Parameter ist "tarifID"
Wie tue ich ds jetzt in mein PreparedStatement??? Die Methode setInt() braucht 2 Paramenter. Ich habe aber nur ein Parameter, welches ich anstatt das "?" einsetzen will.
Wie bekomme ich jetzt das resultset?

Danke für die Hilfe!!!!!!



```
public ResultSet getID_Name_Status_Child(int tarifID) {
ResultSet resultSet = null;
PreparedStatement stm;
		try {
			String statement ="SELECT moditype.id, "
				+ "moditype.name, moditype.status, moditype.constrain,  
                                                                + "rel_moditypes.child "
				+ "FROM moditype, OUTER rel_moditypes " + 
				"WHERE rel_moditypes.parent = moditype.id " +
				"AND moditype.tariftype = ? ;";
	
                                stm = ConnectionInformix.getCon().prepareStatement(statement);
			             // wie bekomme ich mein ResultSet
		stm.setInt(tarifID)   // falsch

		} catch (Exception e) {
			e.printStackTrace();
		}
		return resultSet;
	}
```


----------



## jean20 (20. Dez 2004)

oder bin ich da total falsch mit PreparedStatement. Ist es nur für update? Denn beim update braucht man ja 2 Parameter.
Ich habe das zuerst so verstanden, dass es auch für Abfragen ist.


----------



## DP (20. Dez 2004)

hier: http://www.java-forum.org/de/viewtopic.php?t=4726&highlight=prepared

wg. dem resultset musste in die api schauen. 

mit deinen 2-int-werten: der erste ist die position für den parameter und der 2te ist der wert, der zugewiesen werden soll.

schau mir mal den link oben an, da wird gezeigt wie man das macht. zwar als update (ergo ohne rs), aber immerhin.

cu


----------



## jean20 (20. Dez 2004)

was hat diese Position für eine Bedeutung?


----------



## foobar (20. Dez 2004)

> was hat diese Position für eine Bedeutung?


Die Position des Platzhalters im Statement:


```
SELECT *
FROM myTable t
where t.a = ?
AND    t.b = ?
```
Dieses Statement enthält 2 Platzhalter mit den Positionen 1 und 2.
Position 1 = t.a und Position 2 t.b. 
Ist doch logisch oder?


----------



## jean20 (20. Dez 2004)

ja stimmt


----------

