-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: SELECT Count Abfrage mit Hibernate
PostPosted: Wed Mar 04, 2009 6:32 am 
Newbie

Joined: Wed Mar 04, 2009 6:13 am
Posts: 2
Hallo zusammen,
ich habe ein problem was wahrscheinlich ganz einfach zu lösen ist aber ihrgedwie komme ich nicht weiter..... und ich hoffe jemand kann mir helfen.....

Verwende: Hibernate und JSF

ich habe eine klasse user welche die attribute password und name hat sowie eine tabelle tuser mit den selben attributen.
mein problem ist das ich eine methode brauche, welche mir sagt ob es einen user mit diesem namen gibt und wenn das der fall ist soll er das pw überprüfen.

Quote:
public String login() {
//Methode zur Überprüfung der Anmeldedaten

//1. Schritt: Es wird überprüft ob der Benutername in der Datenbank vorhanden ist
Session session = InitSessionFactory.getInstance().getCurrentSession();
Transaction tx = session.beginTransaction();
Query temp;
temp = session.createQuery("Select Count(*) From tUser Where loginname = '" + loginname + "'");

if (temp.equals(0)){
tx.commit();
return "name"; //Der Name des Users ist nicht vorhanden
}else{

//2. Schritt: Es wird überprüft ob das Password für den Benutzernamen gültig ist
temp = session.createSQLQuery("Select Count(*) From tuser Where loginname = '" + loginname + "'" + " and password = '" + password + "'");

if (temp.equals(0)){
tx.commit();
//User ist vorhanden und das Passwort ist richtig
return "richtig";
}else{
tx.commit();
return "falsch"; //Usernamen ist richtig aber das Passwort ist falsch
}
}

}


die eigentliche frage ist wahrscheinlich eher wie komme ich an die daten aus dem query als string oder als int? denke das es an den if-abfragen liegt.... aber ich weiß mir nicht zu helfen

kann mir jemand helfen? vielen dank
viele grüße


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 04, 2009 9:23 am 
Expert
Expert

Joined: Thu Jan 08, 2009 6:16 am
Posts: 661
Location: Germany
Erst einmal solltest du createQuery und createSQLQuery nicht verwechseln, ersteres wird benutzt um HQL-Queries zu erstellen, letzteres für native SQL-Queries, die aber selten benutzt werden.

In HQL-Queries benutzt du nur die Klassennamen und Felder anstatt der Tabellennamen.

createQuery() liefer dir nur ein Query-Objekt, das du benutzen kannst um die Query auszuführen.

Deine Abfrage eher so aussehen:
Code:
    public String login() {
        // Methode zur Überprüfung der Anmeldedaten

        // 1. Schritt: Es wird überprüft ob der Benutername in der Datenbank
        // vorhanden ist
        Session session = InitSessionFactory.getInstance().getCurrentSession();
        Transaction tx = session.beginTransaction();
        try {
        Query temp;
        temp = session.createQuery("Select Count(*) From User Where loginname = :name");
        temp.setParameter("name", loginname);
        Number count = (Number) temp.uniqueResult();

        if (temp.equals(0)) {
            return "name"; // Der Name des Users ist nicht vorhanden
        } else {

            // 2. Schritt: Es wird überprüft ob das Password für den
            // Benutzernamen gültig ist
            temp = session.createQuery("Select Count(*) From tuser Where loginname = :name and password = :password");
            temp.setParameter("name", loginname);
            temp.setParameter("password", password);
            count = (Number) temp.uniqueResult();

            if (temp.equals(0)) {
                // User ist vorhanden und das Passwort ist richtig
                return "richtig";
            } else {
                return "falsch"; // Usernamen ist richtig aber das Passwort ist
                                 // falsch
            }
        }
        }finally {
            tx.commit();
            session.close();
        }

    }


Rating ist willkommen. ;-)

_________________
-----------------
Need advanced help? http://www.viada.eu


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 05, 2009 5:33 am 
Newbie

Joined: Wed Mar 04, 2009 6:13 am
Posts: 2
Vielen Dank für deine Hilfe habs zum laufen gebracht :-)


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.