-
FEATURED COMPONENTS
First time here? Check out the FAQ!
I am creating simple login form using ZK & Hibernate.I want user can login only if username and password exists in the database.I am trying to use Hibernate criteria api.I stuck at writing logic for login method. please help me?
My LoginController.java is as:
package com.petlist.santosh.controller;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Button;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import com.petlist.santosh.dao.User;
import com.petlist.santosh.util.HibernateUtil;
public class LoginController extends SelectorComposer<Window> {
/**
*
*/
private static final long serialVersionUID = 1L;
@Wire
Textbox userName;
@Wire
Textbox passWord;
@Wire
Button loginButton ;
@Override
public void doAfterCompose(Window comp) throws Exception{
super.doAfterCompose(comp);
}
@Listen("onClick= #loginButton")
public void login(){
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
//this is from login page
String uname=userName.getValue();
String pword=passWord.getValue();
Criteria criteria= session.createCriteria(User.class)
.add(Restrictions.eq("username", uname))
.add(Restrictions.eq("password",pword));
//stucked here
if(user != null){
Executions.getCurrent().sendRedirect("/index.zul");
Messagebox.show("successful");
}
else{
Messagebox.show("please sign up new user");
}
tx.commit();
session.close();
}
}
I hope I am not missing the obvious here. provided your data tables and entities exist you'll have to send a query to the DB to retrieve the result. (hibernate docu)
User user = (User)criteria.uniqueResult();
or
List<User> users = (List<User>)criteria.list();
User user = users.size() == 1 ? users.get(0) : null;
after that you write following two lines of code, your program worked.
criteria.setProjection(Projections.rowCount()); int c= (Integer) criteria.uniqueResult(); if(c!=0) { //valid user }else { //invalid user }
i thing u use MVVM.it's done
Asked: 2013-06-12 11:54:04 +0800
Seen: 283 times
Last updated: Dec 09 '15
Do not update to ZK Studio 2.0
Catch Server 503 Error - Or Catch Stale Page
how to save spreadsheet data into postgres database?
One controller file with multiple zul file
Why am I getting authentication error for ZK studio activation?
How can i make Tomcat (with virtual hosts) to parse the zul page in subfolders?
The solution provided by cor3000 worked for me.Thank you very much Mr cor3000. I used List<User> users = (List<User>)criteria.list(); User user = users.size() == 1 ? users.get(0) : null;
santoshkarna ( 2013-06-13 11:51:04 +0800 )edit