String Probleme

Diskutiere String Probleme im Java Basics - Anfänger-Themen Bereich.
Dimax

Dimax

Guten Tag,
Ich habe ein Jobsuchprogramm gemacht.Das Programm such nach Begriffen auf verschiedenen Seiten.
Die Ergebnisse werden in der Mysql db gespeichert.Auf dem Front wird kleine Übersicht angezeigt mit Gruppierten Ergebnissen an Datum ,Name der JobBörse,und gesuchte Begriff (siehe Bild Front) und zum Schlüss ein Button mit dem Link zur Seite wo die Auswahl angezeigt wird:
Code:
out.println("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getInt(3)+"</td><td>"+rs.getString(4)+"</td><td><a href='Anzeige.jsp?datum="+rs.getString(1)+"&platform="+rs.getString(4)+"&sprache="+rs.getString(2)+"\'><input type='button' value='Anzeigen'></a></td></tr>");
Die Parameter werden richtig übertragen(kontrolliert in Adressleiste,method 'get').
Wenn ich aber c++ als Begriff auswähle und mit :
Code:
try {
    Class.forName(DRIVER);
    Connection cn =DriverManager.getConnection(  
            url,USER,PW);
    PreparedStatement st=cn.prepareStatement("SELECT * FROM projekte.projektangebote where Abrufdatum like ? and Platform like ? and Sprache like ? ;");
    st.setString(1,datum);
    st.setString(2,platform);
    st.setString(3,sprache);
    //System.out.println(sprache);
    ResultSet rs=st.executeQuery();.....
[/code]
aus der DB selektiere,bekomme ich leere Seite,weil c++ wird ohne ++ weitergeleitet.
Wie könnte mann den String so reinsetzen des der mit ++ geleitet wird. Wenn ich direct in der DB select ...like 'c++'; eingebe wird richtig selektiert.
Alle einfachen Begriffe so wie java oder Python funktionieren .

Danke im Voraus.
 

Anhänge

VfL_Freak

VfL_Freak

Moin,

aus der DB selektiere,bekomme ich leere Seite,weil c++ wird ohne ++ weitergeleitet.
Wie könnte mann den String so reinsetzen des der mit ++ geleitet wird. Wenn ich direct in der DB select ...like 'c++'; eingebe wird richtig selektiert.
Sicher das die Ausdrücke, die die '?' ersetzen passend sind in Bezug auf die Hochkommata?
Lass doch mal das PreparedStatement als Text ausgeben ...

VG Klaus
 
Dimax

Dimax

Sicher das die Ausdrücke, die die '?' ersetzen passend sind in Bezug auf die Hochkommata?
ja,die werden so gebaut->
Code:
String platform=request.getParameter("platform");
String sprache= new String(request.getParameter("sprache"));
String datum=request.getParameter("datum");
 
VfL_Freak

VfL_Freak

Schön ...
das beantwortet aber nicht meine Frage, wie das fertige PreparedStatement als Text ausschaut!!

VG Klaus
 
Dimax

Dimax

So schaut es aus mit statement.toString();
SELECT * FROM projekte.projektangebote where Abrufdatum like '21.07.20' and Platform like 'xxx' and Sprache like 'c ' ;
Der Editor von dem Forum hat es getrimmt..also nach c kommen 2 leerzeichen
 
VfL_Freak

VfL_Freak

Sicher das 'c++' so in der Tabelle steht?
request.getParameter("sprache") sollte (soweit es man es hier beurteilen kann) ok sein ...
 
mrBrown

mrBrown

Die Ergebnisse werden in der Mysql db gespeichert.Auf dem Front wird kleine Übersicht angezeigt mit Gruppierten Ergebnissen an Datum ,Name der JobBörse,und gesuchte Begriff (siehe Bild Front) und zum Schlüss ein Button mit dem Link zur Seite wo die Auswahl angezeigt wird:
Code:
out.println("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getInt(3)+"</td><td>"+rs.getString(4)+"</td><td><a href='Anzeige.jsp?datum="+rs.getString(1)+"&platform="+rs.getString(4)+"&sprache="+rs.getString(2)+"\'><input type='button' value='Anzeigen'></a></td></tr>");
Die Parameter werden richtig übertragen(kontrolliert in Adressleiste,method 'get').
Das Problem dürfte genau an dieser Stelle liegen, ein '+' in der Url ist Sonderzeichen, kein normales Plus. Alle Parameter in der URL musst du entsprechend enkodiere, zb mit URLEncoder.
 
Dimax

Dimax

Also mit URLDecoder hat nicht geklappt.
Hab den Method geändert und es läuft:
Code:
out.println("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getInt(3)+
"</td><td>"+rs.getString(4)+"</td><td>
<form action='Anzeige.jsp' method='post'><input type='hidden' name='datum' value="+rs.getString(1)+">
<input type='hidden' name='platform' value="+rs.getString(4)+"><input type='hidden' name='sprache' value="+rs.getString(2)+">
<input type='submit' value='Anzeigen'></form></td></tr>");
 
Dimax

Dimax

Sory mrBrown war mein Fehler,geprüft->
Code:
String  sprache=URLEncoder.encode(request.getParameter("sprache"),"UTF-8");
funktioniert 100%..Danke schön.
 
mrBrown

mrBrown

Code:
String  sprache=URLEncoder.encode(request.getParameter("sprache"),"UTF-8");
funktioniert 100%..Danke schön.
Moment, das sieht wieder etwas komisch aus – Parameter, die du per GET-Request bekommst, musst du nicht noch mal enkodieren, wenn überhaupt musst du die dekodieren.
 
Dimax

Dimax

sollte es so aussehen? :
Code:
<a href='Anzeige.jsp?datum="+rs.getString(1)+"&platform="+rs.getString(4)+"&sprache="+URLEncoder.encode("+rs.getString(2)+","UTF-8")\'><input type='button' value='Anzeigen'></a>
und bei Auswertung
Code:
String  sprache=URLDecoder.decode(request.getParameter("sprache"),"UTF-8");
 
Thema: 

String Probleme

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben