Comment faire pour exécuter une instruction SQL avec une variable comme OÙ?
J'ai quelques code Java comme
int userid = take user input;
Puis d'exécuter une requête sql,
Class.forName(dbdriver);
conn = DriverManager.getConnection(url, username, password);
st = conn.createStatement();
st.executeUpdate("select * from person where uid = userid" );
Maintenant, je ne sais pas le résultat retourné est null
. Je pense que where uid = userid
est de donner un mauvais résultat car il est à la recherche pour littérale valeur uid "userid". En fait, je veux retrive de l'information de la personne table des utilisateurs, à condition uid valeurs. Quelqu'un peut-il m'aider comment résoudre ce problème?
- Pouvez-vous montrer le réel de code java où vous faites la requête? Exactement comment vous transmettre la valeur de
userid
dans la requête dépend beaucoup de comment vous vous JDBC appel. - Montre-nous ton code et stacktrace.?
- Pouvez-vous inclure le code réel, vous êtes en cours d'exécution, et de décrire plus en détail de ce comportement que vous observez?
- C'est assez basique. Avez-vous déjà commencé à apprendre vraiment le sujet en utilisant les tutoriels officiels? Commencez ici: download.oracle.com/javase/tutorial/jdbc/basics/index.html en Particulier le chapitre "Préparées" devrait être utile.
- - Je ajouter le code.
- Srry, je fais l'erreur de saint.executeUpdate("select * from personne où uid =" + id utilisateur).
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser l'instruction prepare comme cela vous protéger contre l'injection sql. Vous pouvez également ajouter un simple journalisation par l'impression de l'instruction sql avant son exécution, et si vous êtes sûr. Ci-dessous l'exemple de la classe mais n'hésitez pas à le modifier dans votre situation.
Pourrait vous coller l'ensemble du bloc de code sur cette question?
Voici ma suggestion
si la base de données a un ou plusieurs enregistrement qui est uid déposé égal à l'id utilisateur ,qui sera de retour le résultat correct
int user_id=2003; //vous pouvez également obtenir de la variable d'entrée
String sql="SELECT * from de l'emploi, OÙ id=";
resultSet = instruction.executeQuery(sql+user_id);