2012-06-07 1 views
0

Je travaille sur un projet personnel créant une horloge de poinçon en java. Comme il y aura plusieurs utilisateurs pointant dans et hors J'ai créé un JTextField où les utilisateurs vont taper leur ID number et quand ils cliquent sur le button(jButton1) le programme devrait faire deux choses.Punch Clock en java

  1. devrait passer par la colonne de la base de données JDBC recherche du numéro d'identification et
  2. Une fois que le numéro d'identification se trouve le programme devrait copier l'heure actuelle dans l'enregistrement pour l'horloge ou sur, sinon afficher une erreur un message tel que "numéro d'identification introuvable".

C'est l'idée, j'ai appris quelques choses par moi-même et avec l'aide de google. Cependant, je ne peux pas trouver cette partie, toute aide/direction est appréciée. Je vous remercie.

+0

Honnêtement, je n'ai aucune idée de comment créer quelque chose comme => si 007485378 = 007485378 (dans la base de données) puis copier l'heure actuelle. J'ai cherché dans google mais je ne peux pas vraiment trouver quelque chose d'utile. –

Répondre

1

Vous devez utiliser un SwingWorker pour effectuer l'opération de base de données. Puisque vous utilisez déjà JDBC, utilisez PreparedStatement et exécutez votre requête pour récupérer le résultat.

Si le résultat se trouve la base de données de mise à jour avec le temps en cours, vous pouvez obtenir l'heure en milliseconde en appelant System.currentTimeInMillis()

Une fois que votre travailleur effectue son fonctionnement, puis afficher le message approprié à l'interface utilisateur.

1. How to use PreparedStatement

2. A sample implementation for using SwingWorker for database operation

Considérant ID provient d'un JTextBox, utilisez PreparedStatement comme ceci:

String sql = "SELECT FIRST_NAME, LAST_NAME, HOURS FROM WORKERS WHERE ID= ?"; 
PreparedStatement pstmt = connection.prepareStatement(sql); 
pstml.setInt(1, 007859378); 
ResultSet rs = pstmt.executeQuery(); 

while(rs.next()){ 
    //Extract values from ResultSet 
} 

De cette façon, vous vous empêcher de SQL Injection, lire aussi how Prepared Statement helps against SQL Injection

+0

Ok, merci beaucoup. Je pense que j'avais déjà vu cette option auparavant. –

+0

Vous êtes les bienvenus – mprabhat

+0

Salut, je ne sais pas si c'est la meilleure façon de vous poser une question. Mais j'ai travaillé sur ma question et je suis venu avec cette idée, qu'en pensez-vous ?? Chaîne sql = "SELECT FIRST_NAME, LAST_NAME, HEURES DE TRAVAIL O WH ID = 007859378" rs = stmt.executeQuery (sql); rs.next(); Chaîne first = rs.getString ("First_Name"); Chaîne last = rs.getString ("Last_Name"); String id = Integer.toString (id_col); textID.sestText (id); textFirstName.setText (premier); textLastName.setText (last); Je suis désolé je ne sais pas comment garder l'indentation, il ne semble pas bon, j'espère que vous comprenez. Merci –

Questions connexes