2016-10-14 6 views
1

Ich habe ein Dokument wie dieses in einer Datenbank in Mongo DB.Wie speichere ich Daten in Strings von MongoDB mit Java?

{ 
    "_id" : ObjectId("5800d904a3e7535f0d2d673a"), 
    "username" : "sai", 
    "password" : "sai123" 
} 
{ 
    "_id" : ObjectId("5800d921a3e7535f0d2d673b"), 
    "username" : "surya", 
    "password" : "surya123" 
} 

Jetzt habe ich eine HTML, die Benutzername und Passwort einnimmt.

Wie speichere ich den Benutzernamen und das Passwort einzeln und speichere sie in separaten Strings aus der Datenbank in MongoDB?

Wenn ich versuche, die Daten mit "username SAI" als Schlüssel zur Abfrage von DB Java-Code wie folgt verwendet:

import com.mongodb.DB; 
import com.mongodb.DBCollection; 
import com.mongodb.DBObject; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoException; 
import com.mongodb.WriteConcern; 
import com.mongodb.BasicDBObject; 
import com.mongodb.DBCursor; 
import com.mongodb.ServerAddress; 
import java.util.Arrays; 

public class MongoDBJDBC { 

    public static void main(String args[]){ 

     try{ 
      MongoClient client=new MongoClient("localhost", 27017); 

      DB db= client.getDB("test"); 
      System.out.println("Connect to database successfully"); 

      DBCollection coll= db.getCollection("login"); 
      System.out.println("Collection POST selected successfully"); 

      String uname="username"; 
      String s="sai"; 


      DBCursor cursor= coll.find(new BasicDBObject(uname, s),new BasicDBObject("_id", 0)); 
      int i=1; 

      while(cursor.hasNext()){ 

       System.out.println("Inserted doc :" +i); 

       DBObject xyz= cursor.next(); 
       System.out.println(xyz); 

       i++; 

      } 
     } 
     catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
    } 

} 

ich diese Ausgabe:

Connect to database successfully 
Collection POST selected successfully 
Inserted doc :1 
{ "username" : "sai" , "password" : "sai123"} 

Wie kann ich diese Operationen manipulieren, um Benutzernamen und Passwort in temporäre lokale Zeichenfolgen zu speichern? Bitte beraten Sie mich.

UPDATE: Ich habe den gesamten Code eingegeben. Bitte hilf mir. Ich bin auch neu.

+0

Hum Speichern von Passwörtern wie diese in db scheint nicht ein guter Ansatz aus Sicherheitsgründen zu sein, sollten sie geplant und hashed –

Antwort

1

solchen Mechanismus zu implementieren müssen Sie:

  1. einen Index Ihrer 2 Felder mit coll.ensureIndex(new BasicDBObject("username", 1).append("password", 1)) zusammengesetzt erstellen, ermöglicht es, die bestmöglichen Leistungen zu erhalten, wenn es Ihre Abfrage ausgeführt wird.
  2. Holen Sie sich das erste Dokument, das mit dem angegebenen Benutzernamen und Passwort übereinstimmt, wenn ein Dokument gefunden werden kann, ist der Benutzername/das Passwort ok, ansonsten sind sie falsch.

könnte der Code sein:

BasicDBObject query = new BasicDBObject("username", uname).append("password", s); 
// Gets only the id of a doc that matches with the username and password 
DBObject item = coll.findOne(query, new BasicDBObject("_id", Boolean.TRUE)); 
// If != null ok, ko otherwise 
if (item == null) { 
    // KO 
} else { 
    // OK 
} 

Die benötigten Importe:

import com.mongodb.BasicDBObject; 
import com.mongodb.DBObject; 
import com.mongodb.DBCollection; 

NB: Speichern direkt Passwörter wie dies in einem db kein guter Ansatz ist Aus Sicherheitsgründen sollten sie geplant und gehashed werden

+0

Ich verwende diesen Code in der Hauptfunktion(). Also Rückkehr ist ein Problem. Können Sie mir bitte helfen, ein wenig weiter –

+0

bitte nochmals überprüfen –

+0

Können Sie mit gesamtem Programm mir bitte helfen Der Code direkt aus Importen bitte .. mir wirklich –

Verwandte Themen