IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Java et simple BDD pour vérifier login & passwd


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut Java et simple BDD pour vérifier login & passwd
    Bonjour,


    Voilà j'aimerai passer par une BDD (mySQL ?) lorsque je veux vérifier le mot de passe et le login d'un utilisateur. Pour l'instant le programme ouvre et parcour simplement un fichier texte. Je voudrais donc que le programme ouvre la BDD et la parcours en recherchant si le login existe, si c'est le cas, le password donné par l'utilisateur correspond il à celui de la BDD.

    Connaitriez-vous une méthode déjà toute faite qui remplisse cette fonction?

    Merci d'avance et bonne journée.

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Oulala, je crois que tu en demandes un peu trop.

    Comment veux tu qu'une méthode connaisse ta base, ton login, tes tables et enfin les champs qu'elle doit chercher.

    Donc pour répondre a ta question, non, il n'existe pas ce que tu cherches. Il va falloir faire "à la main". Mais bon ce n'est pas la mort non plus. Il suffit d'installer une BDD, mysql, rapide et simple d'utilisation et suffit amplement pour faire de petit test.

    Ensuite crée ta table, la remplir. Et ensuite dans ton code de crée la connection, et faire une requete sur la base pour te recupérer le password du login entré et regarder s'il coïncide. Si rien ne t'es retourné c'est que le login n'existe pas.

    Si tu as d'autre questions n'ésite pas.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Même une fonction avec comme paramètre le password et le login ?

    Le problème c'est que je ne m'y connais pas du tout en BDD et je ne connais pas non plus les "connecteurs" (je sais même pas si c'est comme ça qu'on appelle ça) java-BDD... et à mon plus grand désespoir c'est assez urgent..


    Enfin bon merci quand même

  4. #4
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    A ton grand desespoir je ne connais rien que fasse ceci.
    Mais si ne t'inquiete pas, tu n'as pas besoin de savoir grand chose en BDD pour faire ceci.

    L'installation de mysql est très simple, next, next, next. Avec juste le password root a donner et le nom de ta database.

    Et puis la connection à la base, c'est simplement 2 ou 3 lignes.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  5. #5
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Ouais mais j'ai oublié de dire qu'à part le fait que je dois vérifier dans la base si le pass et le login existe, il faut aussi que je puisse rajouter un pass et un login via une fonction dans cette BDD.

    Si c'est pas trop dur, tu connais un tutoriel qui va droit au but à ce niveau ?

    Merci encore.

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par nicofromChina
    il faut aussi que je puisse rajouter un pass et un login via une fonction dans cette BDD.

    Si c'est pas trop dur, tu connais un tutoriel qui va droit au but à ce niveau ?
    Le tuto, je l'ai copié collé en dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO tableMotDePasse(login,passwd) VALUES ('Moi','PASS')
    Mais bon ce tuto est un peu simple. Je crois qu'avec MySQL tu disposes d'une fonction PASSWORD qui crypte le mot de passe. Ce qui est un poil mieux quand meme ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  7. #7
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Le tuto, je l'ai copié collé en dessous :


    Code :
    INSERT INTO tableMotDePasse(login,passwd) VALUES ('Moi','PASS')

    Lol. En effet un tuto bien court. Je pense que s'il veut en faire juste une vérification comme cela il ne doti pas s'embeter avec la cryption du mot de passe ce qui serait je pense une perte inutile de temps dans son cas!
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  8. #8
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Ok merci je teste ça dans l'après midi.

    J'ai une question un peu bête mais j'imagine qu'il ne suffit pas que je mette juste cette ligne non. Il y a bien quelque chose à importer pour que ça marche non ?

  9. #9
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par maxf1
    Je pense que s'il veut en faire juste une vérification comme cela il ne doti pas s'embeter avec la cryption du mot de passe ce qui serait je pense une perte inutile de temps dans son cas!
    En fait tu ne vérifies pas le mot de passe en clair (pas bien !). Tu vérifie le mot de passe cryptionné (pour reprendre ton expression )

    au lieu de regarder si "passe1" est bien le mot de passe de machin, il faut regarder si PASSWORD("passe1") correspond au mot de passe crypté de machin ... C'est la sécurité vraiment minimum pour un serveur accessible sur le réseau ...

    Sinon, pour en revenir au problème initial. Tu as pas mal de tuto sur l'utilisation de jdbc. Suffit de chercher un peu ...

    Il suffit que tu établisse la connexion (3 lignes) et que tu ai 2 méthodes, une qui vérifie que le password est Ok (un select quoi) et une qui insére une nouvelle valeur dans la table (un simple insert). Tu pourra meme, si le coeur t'en dis faire une méthode de mise àjour du mot de passe et de suppression de l'utilisateur !

    Désolé de ne pas plus t'aider, mais ça reviendrait à t'écrire le programme ...

    Regarde un tuto, tente un truc et revient nous montrer ton code si ça ne fonctionne pas ...

    bon courage

    [EDIT]

    je te mets des liens :

    1 : une liste de TP avec correction pour utiliser MySQL avec Java

    2 : un site avec des exemples et explications assez claires.

    En même temps, tu trouveras des tonnes d'exemple sur le Net. Et même peut etre direct un truc de gestion de mot de passe en cherchant bien
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  10. #10
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Merci de votre aide mais en fait je me rend compte que je n'aurais malheureusement pas le temps de le faire du fait que c'est un ptit projet à rendre. Tanpis ...


    Merci encore

  11. #11
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Franchement en 20 minutes c'est plié ...

    Dans ton petit projet, rien n'est imposé ? En même temps si tu n'as que 1 ou 2 utilisateurs, pourquoi sortir l'artillerie lourde, un simple fichier texte (ou xml plus sympa dans un cadre pédagogique), avec le mot de passe crypté faiblement ferait l'affaire.
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  12. #12
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Bon j'essais depuis maintenant quelques heures de comprendre comment marche le tout mais j'ai vraiment du mal. En fait j'ai vraiment du mal avec la mise en place du système MySql + driver.

    J'ai mis le mysql-connector-java-5.0.4-bin.jar du driver MySql dans le CLASSPATH avec pour "Variable name" : "JDBC" et pour "Variable value" : "mysql-connector-java-5.0.4-bin.jar". Alors déjà je ne suis même pas certain que ça soit comme ça qu'il faille faire car même dans la doc de MySql ils disent juste d'ajouter le fichier jar dans les variables d'environnement.

    Ensuite, je suis en train de suivre le tutorial de Sun traduit en français ici. J'ai donc récupéré le nom de la classe à utilisé comme dans le tutoriel, donc si je ne me suis pas trompé c'est "com.mysql.jdbc.Driver".

    Le problème est que dans ce tutoriel, ils ne disent pas si je dois importer une certaine classe ou non, ect. bref je ne trouve pas très bien détaillé pour les gros novices comme moi. Je ne connais absolument rien en base de donné et même avec PhpmyAdmin, tout ce que j'ai réussi à faire c'est de créer un utilisateur avec tous les privilèges, créer une base de données et une table appelé Users. Après je ne sais même pas comment ajouter dans cette table un login pour lequel un certain mot de passe correspond.

    Et donc quand je fais un "Class.forName("com.mysql.jdbc.Driver");" et bien même en important java.lang.Class; j'ai une erreur comme quoi il y a un problème avec le token "com.mysql.jdbc.Driver"...

    Si quelqu'un pouvait m'aider à me sortir de ce problèmes j'apprécierais grandement

    Merci pour votre aide.

  13. #13
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Pour charger le driver et ouvrir une connexion, la FAQ devrait t'aider ... enfin c'est sûr

    Pour mettre "ton jar dans ton CLASSPATH" il suffit d'ajouter le chemin vers le .jar.

    Sous bash par exemple
    export CLASSPATH=cheminVerslesClasses:cheminVersDesJar:chemiPourDriver/mondriver.jar:.

    Sous windows ça sera des ; (à moins que j'inverse les deux )

    Bref, de la même manière que ton classpath contient le(s) chemin(s) vers tes .class, il faut aussi que tu lui mettes le(s) chemin(s) vers les librairies externes que ton application utilise. Dont le driver ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  14. #14
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Heu attend là en fait je viens d'avoir un doute, le mysql-connector-java-5.0.4-bin.jar je dois le mettre dans le classpath d'Eclipse et pas de windows. Si c'est bien le cas, je dois choisi, Project, Properties, puis l'onglet Librairies et là Add External JARs non ?
    A force de lire des trucs que je ne comprenais pas j'ai fini par même oublier ce que je savais.

    Bon enfin bref j'ai supposé que c'était dans le classpath d'Eclipse et j'ai donc ajouter le .jar à mon projet.

    Mon projet est juste la classe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package test;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
     
    public class JDBC {
     
    	public static void main(String[] args) throws Exception {
    		Class.forName("com.mysql.jdbc.Driver");
    		Connection cnx = DriverManager.getConnection("jdbc:mysql://127.0.0.1", "chat", "passwd");
    		Statement s = cnx.createStatement();
    		s.execute("select 1 from users");
    		s.close();
    		cnx.close();
    	}
    }
    Je le lance et j'obtient cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception in thread "main" java.sql.SQLException: No suitable driver
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at test.JDBC.main(JDBC.java:11)
    J'en déduis donc que c'est au niveau du "com.mysql.jdbc.Driver" mais justement dans la doc de MySql c'est celui là qu'il donne.

    Ai-je fait une erreur ?

  15. #15
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Bon j'ai un peu avancé et surtout j'ai compris ce que je faisais (enfin ).

    Par contre là j'ai un problème que je ne pige pas et même en faisant le debug je ne vois pas (d'ailleur au passage, en mode debug, où trouve-t-on les valeurs pour un ResultSet.getString(1) ?)

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    package test;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.SQLException;
    import java.sql.ResultSet;
     
    public class DataBase {
     
    	private Connection connection;
    	private Statement statement;
    	private ResultSet resultSet;
    	private String login = null;
    	private String password = null;
    	private String[] usersList = null;
    	private int numberOfUsers = 0;
    	private String[] chatRoomsList = null;
    	private String chatRoom = null;
    	private String query = null;
    	private String tableName = "users";
     
    	public DataBase(String driver, String url, String dataBaseUserName, String dataBaseUserPassword) {
    		try {
    		    Class.forName(driver);
    		    connection = DriverManager.getConnection(url, dataBaseUserName, dataBaseUserPassword);
    			statement = connection.createStatement();
    		}catch(ClassNotFoundException e) {
    		    System.out.println("Error when loading the driver : " + e.toString());
    		}catch(SQLException e) {}
    	}
     
    	public void createTable(String tableName) {
    		//vérifier ici si la table existe
    		this.tableName = tableName;
    		query = "CREATE TABLE " + tableName +
    							"(login VARCHAR(30) not null, " +
    							"password VARCHAR(30) not null, " +
    							"PRIMARY KEY (login))";
    		try {
    			statement.executeUpdate(query);
    		}catch(SQLException e) {}
    	}
     
    	public void useTable(String tableName) {
    		this.tableName = tableName;
    	}
     
    	public void addUser(String login, String password) {
    		query = "INSERT INTO " + tableName + " VALUES ('" + login + "', '" + password + "')";
    		try {
    			statement.executeUpdate(query);
    		}catch(SQLException e) {}
    	}
     
    	public void deleteUser(String login) {
    		query = "DELETE FROM " + tableName + " WHERE login='" + login + "'";
    		try {
    			statement.executeUpdate(query);
    		}catch(SQLException e) {}
    	}
     
    	public String[] getUsersList() {
    		int i = 0;
    		query = "SELECT login FROM " + tableName;
    		try {
    			resultSet = statement.executeQuery(query);
    			while(resultSet.next()) {
    				usersList[i] = resultSet.getString(1);
    				i++;
    			}
    		}catch(SQLException e) {}
    		numberOfUsers = i;
    		return usersList;
    	}
     
    	/*public boolean isRegistered(String login) {
    		try {
    			statement.executeQuery(query);
    		}catch(SQLException e) {}
    	}
     
    	public boolean isAuthentificationOk(String login, String password) {
    		try {
    			statement.executeUpdate(query);
    		}catch(SQLException e) {}
    	}*/
     
    	public String getLogin() {
    		return login;
    	}
     
    	public String getPassword() {
    		return password;
    	}
     
    	public int getNumberOfUsers() {
    		return numberOfUsers;
    	}
     
    	public void addChatRoom(String chatRoom) {
    		query = "INSERT INTO " + tableName + " VALUES ('" + chatRoom + "')";
    		try {
    			statement.executeUpdate(query);
    		}catch(SQLException e) {}
    	}
     
    	public void deleteChatRoom(String chatRoom) {
    		query = "DELETE FROM " + tableName + " WHERE chatRoom='" + chatRoom + "'";
    		try {
    			statement.executeUpdate(query);
    		}catch(SQLException e) {}
    	}
     
    	/*public String[] getChatRoomList() {
     
    	}
     
    	public boolean isExisting(String chatRoom) {
    		try {
    			statement.executeUpdate(query);
    		}catch(SQLException e) {}
    	}*/
     
    	public String getChatRoom() {
    		return chatRoom;
    	}
     
    	public void closeStatement() {
    		try {
    			statement.close();
    		}catch(SQLException e) {}
    	}
     
    	public void closeConnection() {
    		try {
    			connection.close();
    		}catch(SQLException e) {}
    	}
     
     
    	public static void main(String[] args) throws Exception {
    		DataBase dataBase = new DataBase("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/chat", "chat", "azerty");
    		dataBase.useTable("users");
    		String users[] = dataBase.getUsersList();
    		for(int i = 0; i < dataBase.getNumberOfUsers(); i++) {
    			System.out.println(users[i]);
    		}
    		dataBase.closeStatement();
    		dataBase.closeConnection();
    	}
    }
    Et l'erreur que j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.NullPointerException
    	at test.DataBase.getUsersList(DataBase.java:69)
    	at test.DataBase.main(DataBase.java:145)
    Je précise qu'en faisant un "select login from users" en ligne de commande sur mon SGBD j'ai bien mes 3 rows qui sortent. Mon code me paraît correct et je ne vois vraiment pas d'où vient le problème surtout que j'ai suivi ce qu'à fait un gars dans un tutoriel à part que j'ai choisi un tableau de Strings (ça me paraît bizarre que l'erreur vienne de là).

  16. #16
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Bon je viens de voir que le problème venait du tableau de Strings mais je ne comprends pas pourquoi. Si quelqu'un peut me l'expliquer c'est cool

    Sinon dans ce cas comment je peux récupérer toute la colonne d'une table ?!

  17. #17
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Essaye voir un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultSet.getString(0);
    Je crois que ca commence à zero. Mais moi j'utilise souvent, resultSet.getString("login") par exemple, en faite le nom du champ que tu veux recuperer, ca te permet de ne pas t'occuper de la position de tes champs, et surtout de pouvoir faire un select * sans probleme.

    Si ce n'est pas ca le probleme fis le savoir je chercherais plus en détails mais il n'y a que ca qui me saute aux yeux.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  18. #18
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Non non ça commence bien à un, mais en fait après j'ai changé j'ai mis le "login".

    Bon sinon là je comprend pas ça marche ! J'ai juste été me couché, essayé avec un ArrayList puis reessayé avec un tableau de String et là ça marche

    Merci pour l'aide dans tous les cas

    Allez de toute façon je ne devrais pas tarder à poster un nouveau problème

  19. #19
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Pour l'histoire du tableau de String. Le null pointer c'est parce qu'il n'est pas initialisé. Tu ne peux pas faire userList[i] si tu n'a pas fais de userList = new String[taille] ...

    Dans ta méthode getUserList, il faudrait initialiser un tableau de String temporaire avec la bonne taille, le remplir et le retourner ... bref une ArrayList est plus simple à utiliser.
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  20. #20
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 211
    Points : 102
    Points
    102
    Par défaut
    Bonjour,

    Bon là j'ai un petit problème avec une requête je pense et je ne sais pas comment la débugger.

    J'ai ma classe DataBase dont le constructeur est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public DataBase(String driver, String url, String dataBaseUserName, String dataBaseUserPassword) {
    		try {
    		    Class.forName(driver);
    		    DriverManager.setLoginTimeout(5);
    		    connection = DriverManager.getConnection(url, dataBaseUserName, dataBaseUserPassword);
    		    dataBaseMetaData = connection.getMetaData();
    			statement = connection.createStatement();
    		}catch(ClassNotFoundException e) {
    		    System.out.println("Error when loading the driver : " + e.toString());
    		}catch(SQLException e) {}
    	}
    Dedans j'ai la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public ResultSet getUsersWithPasswords() {
    		query = "SELECT login, password FROM " + tableNameForUsers;
    		try {
    			resultSet = statement.executeQuery(query);
    		}catch(SQLException e) {}
    		return resultSet;
    	}
    Cette fonction est appellée dans ma classe server par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void loadRegisteredUsers()
    	{
    		try {
    			login = dataBase.getUsersWithPasswords().getString("login");
    			password = dataBase.getUsersWithPasswords().getString("password");
    			while(dataBase.getUsersWithPasswords().next()) {
    				checkRegistrationUser.addUser(new User(login, password));
    			}
    		}catch(SQLException sqle) {}
    	}
    Bien que la table contienne les champs login et password avec quelques logins et passwords, je ne récupère rien dans login ou dans password. Et je ne sais pas où chercher dans les variables lors du débogage pour trouver le contenu d'un ResultSet.
    Voyez-vous une erreur dans ma requête ou dans l'appel de ma fonction? Comment faire pour voir ce qu'a le resultSet lors du debogage?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/03/2013, 15h08
  2. [DTD] utiliser avec JAVA des fichiers DTD pour vérifier la validité des fichiers XML
    Par Balbuzard dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 20/04/2009, 12h10
  3. script pour vérifier si un champ existe déjà dans une BDD
    Par tomguiss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/02/2009, 13h19
  4. Cherche BDD simple, légère pour toute petite application
    Par sp2308 dans le forum Bases de données
    Réponses: 22
    Dernier message: 30/01/2009, 13h49
  5. [LDAP] Requête pour vérifier le login et mot de passe
    Par NiGHtyWolf dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/03/2007, 22h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo