Die Frage der Leistung ist überall und nicht eindeutig so zu überwintern es hängt alles davon ab, wie Sie denn selbst in JDBC Ihre Projektstruktur zum Beispiel dort mit PreparedStatement
anstelle von Statement
ein starkes Argument ist. In Hibernate können Sie HSQL
verwenden oder für die kühlere Criteria
API entscheiden. Ich bevorzuge eigentlich die Criteria
API, weil ich keine Abfrage schreiben muss, überlasse ich das der Hibernate-Engine.
Also vorausgesetzt, Sie haben eine Tabelle mit dem Namen Users
in Ihrer Datenbank und es enthält den Benutzernamen und das Passwort für die Anmeldung bei Benutzern, eine einfache boolean
Methode wie diese wird Ihnen sehr gut dienen und wie Sie bemerken können, müssen Sie nicht schreiben jede Abfrage. Dies macht Ihre Anwendung tatsächlich unabhängiger in Bezug auf Datenbanken, da sie mit den meisten Datenbanken mit minimalen Änderungen funktioniert.
public static boolean userExists(String userName, String userPassword) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
long count = 0;
try {
tx = session.beginTransaction();
Criteria cr = session.createCriteria(Users.class);//Users.class is the mapping class for your database Objects.
cr.add(Restrictions.eq("userName", userName));
cr.add(Restrictions.eq("userPassword", userPassword));
count = (Long) cr.setProjection(Projections.rowCount()).uniqueResult();
tx.commit();
} catch (Exception asd) {
System.out.println(asd.getMessage());
if (tx != null) {
tx.rollback();
}
} finally {
session.close();
}
return count > 0;
}
Also, wenn Sie passieren Benutzernamen und Passwort-Parameter, wenn ein Benutzer und Passwort übereinstimmt, wird die boolean
true
zurückkehren sonst wird es false
zurück. Im Hintergrund wird der Motor diese Abfrage generiert:
select count(*) from Users where user_name = ? and user_password = ?
Es gibt ein nettes Tutorial ist here wo Sie verweisen können.
Sie könnten dies lesen: http://StackOverflow.com/Questions/1607819/weaknesses-of-Hibernate?rq=1 –
Ich nicht was falsch in der Frage war, dass jemand nur abgestimmt es. Vielleicht kann ein Gentleman, der es abgelehnt hat, das erklären? – aatif
@JoseLuis Danke für die Antwort, ich habe diese Antwort bereits gelesen .. Ich war verwirrt, dass es wirklich eine gute Idee ist, JDBC für einige Seiten in meiner Anwendung zu verwenden. – aatif