Ρε παιδιά help me δεν βγάζω άκρη...έχω ένα πίνακα με 2 στήλες ID και names
θέλω επιλέγοντας το ID μου εμφανίζει το όνομα που πρέπει
Δείτε τι έχω κάνει ...μη με κράξετε αρχάριος.
Ότι και αν έχω δοκιμάσει παίρνω πάντα null σαν αποτέλεσμα στο http://localhost:.............Κώδικας:package Mypack; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import javax.annotation.Resource; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import javax.sql.DataSource; import java.sql.ResultSet; @WebService(serviceName = "MTEL") public class MTEL { @Resource(name = "data1") private DataSource data1; @WebMethod(operationName = "Search") public String Search(@WebParam(name = "numb") String numb) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.3:3306/mydata", "root", ""); Statement stmt = con.createStatement(); String sql = "SELECT name FROM people WHERE ID='" + numb + ""; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { uname = rs.getString("name"); int id = rs.getInt("ID"); System.out.println(uname); } } catch (Exception e) { System.out.println(e.getMessage()); } return uname; } }
Εμφάνιση 1-3 από 3
-
16-07-12, 16:06 Select απο Table HELP!!!Java #1
Τελευταία επεξεργασία από το μέλος guybrush07 : 16-07-12 στις 16:12.
-
16-07-12, 18:48 Απάντηση: Select απο Table HELP!!!Java #2
Είναι σωστή η IP που δίνεις στο connection string;
Αν ο SQL server τρέχει στο ίδιο PC που τρέχει η εφαρμογή τότε θα πρέπει να βάλεις 127.0.0.1 ή localhost.
Και 2 σημεία που είδα στα γρήγορα:
Κώδικας:String sql = "SELECT name FROM people WHERE ID='" + numb + ""; Δεν θα 'πρεπε να 'ναι ως εξής..; String sql = "SELECT name FROM people WHERE ID='" + numb + "'";
Κώδικας:while (rs.next()) { uname = rs.getString("name"); int id = rs.getInt("ID"); // είναι σωστό αυτό; αφου νομίζω το resultset περιέχει μόνο τα names! (select name ..) System.out.println(uname); }
-
18-07-12, 22:08 Απάντηση: Select απο Table HELP!!!Java #3
Καλησπέρα,
Επιπλέον των παραπάνω, μήν κάνεις ΠΟΤΕ string concatenation δεδομένων που δίνει ο χρήστης για δημιουργία SQL queries. Διάβασε για SQL injection.
Πιο σωστός τρόπος εν προκειμένω είναι:
Κώδικας:import java.sql.PreparedStatement; ... PreparedStatement stmt = con.prepareStatement("SELECT id, name FROM people WHERE id=?"); // προσέθεσα το id στο SELECT int id = Integer.parseInt(numb); stmt.setInt(1, id); ResultSet rs = stmt.executeQuery(); ...
Κώδικας:Connection conn = null; try { ... } catch(...) { ... } finally { if( conn != null ) { try{ conn.close(); } catch(Exception ignore) {} } }
Όταν είσαι εντάξει με αυτά, δές και για connection pooling/datasources αντί να φτιάχνεις το java.sql.Connection εξαρχής (και να έχεις κωδικούς πρόσβασης hardcoded).
Καλή επιτυχία
Παρόμοια Θέματα
-
Επίδειξη του χώρου εργασίας επαυξημένης πραγματικότητας Mirage Table από την Microsoft
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 6Τελευταίο Μήνυμα: 12-05-12, 02:14 -
hash table απο συνδεδεμενη λιστα στη C
Από ambageo στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 2Τελευταίο Μήνυμα: 29-12-10, 01:25 -
URL από String μέσω SH Scripting στο Linux
Από PiXel στο φόρουμ Unix - LinuxΜηνύματα: 2Τελευταίο Μήνυμα: 14-12-10, 14:22 -
Access πρόβλημα επιλογή table από combo box
Από tpelek στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 9Τελευταίο Μήνυμα: 13-12-07, 16:21 -
Java:Υπάρχει τρόπος να ανιχνέυω το τελευταίο γράμμα απο ένα string??
Από sadako στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 2Τελευταίο Μήνυμα: 24-11-06, 14:52
Bookmarks