Toon posts:

[Java] variabele in SQL meegeven?

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
hallo,

ik ben bezig met een choice menu in java, daarbij gebruik ik de volgende code

try {
Class.forName("com.mysql.jdbc.Driver");
myConn1 = DriverManager.getConnection("jdbc:mysql://192.******:3306/test");
Statement stmt = myConn1.createStatement();
String klant= keuze.getSelectedItem();
String SQL = ("select * from klanten where voornaam=('klant')");
ResultSet results1 = stmt.executeQuery(SQL);
while(results1.next()) {
String voornaam = results1.getString("voornaam");
String achternaam = results1.getString("achternaam");
String postcode = results1.getString("postcode");
String telefoon = results1.getString("telefoon");
jTextField1.setText(voornaam);
jTextField2.setText(achternaam);
jTextField3.setText(postcode);
jTextField4.setText(telefoon);
System.out.println("Voornaam " +voornaam + "\n" +
"Achternaam "+ achternaam +"\n"+ "Postcode "+postcode + "\n");
}

nu wil ik dus aan de hand van een verkregen variabele (getSelectedItem van de choice) een sql query naar mijn MySql database sturen. alleen kom ik er maar niet achter hoe ik een java variabele mee kan geven in de SQL statement.

[ Voor 7% gewijzigd door Verwijderd op 22-12-2003 00:56 ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je moet de string met SQL code concattoneren met je variabelen en de rest van de zin. Zoals je het nu opschrijft zet hij letterlijk 'klant' in de String SQL B)

[ Voor 6% gewijzigd door Voutloos op 22-12-2003 01:02 ]

{signature}


Verwijderd

Topicstarter
hoe ziet dat er syntactisch gezien uit dan?


zo iets?
String SQL = ("select * from klanten where voornaam=")+klant;
ResultSet results1 = stmt.executeQuery(SQL);

  • aj-san
  • Registratie: Februari 2001
  • Laatst online: 14-01 08:34
PreparedStatement() is denk ik wat je zoekt:
http://java.sun.com/j2se/...ql/PreparedStatement.html

Ik ben niet zo'n held in Java maar dat zou iets moeten worden als
Java:
1
2
3
PreparedStatement pstmt = conn.prepareStatement("select * from klanten where voornaam=?");
pstmt.setString(1, voornaam);
ResultSet results1 = pstmt.executeQuery();

[ Voor 3% gewijzigd door aj-san op 22-12-2003 01:26 . Reden: bah typvout ;( ]

Don't try... do. Or do not. There is no try. -- Master Yoda


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op 22 december 2003 @ 01:08:
hoe ziet dat er syntactisch gezien uit dan?


zo iets?
String SQL = ("select * from klanten where voornaam=")+klant;
ResultSet results1 = stmt.executeQuery(SQL);
Waarom zet je die haken om die String? Dat moet ook niet. Als je niet snapt waarom hier geen haken nodig zijn, dan heb je het onderscheid tussen variabelen, waardes en methoden aanroepen niet door.

Het ziet er net zo uit als bij System.out.println. Daar doe je het toch ook goed?
Als jij daar

System.out.println("Voornaam voornaam Achternaam achternaam Postcode postcode");
opschrijft gebeurt er ook niet wat jij wilt.

Wat aj-san zegt is ook een optie.
Dus of een PreparedStatement (lees zelf aub ff de codumentatie) je zet een query in een String.

[ Voor 29% gewijzigd door Voutloos op 22-12-2003 01:17 ]

{signature}


Verwijderd

Topicstarter
perfect, bedankt voor de hulp dit was inderdaad de oplossing
Pagina: 1