首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

施行根据用户命和密码的查询时 出错.求帮助

2013-09-24 
执行根据用户命和密码的查询时 出错....求帮助!本帖最后由 u010034034 于 2013-09-22 13:10:06 编辑错误信

执行根据用户命和密码的查询时 出错....求帮助!
本帖最后由 u010034034 于 2013-09-22 13:10:06 编辑 错误信息:
Struts Problem Report
Struts has detected an unhandled exception: 
Messages: org.hibernate.impl.SQLQueryImpl cannot be cast to com.pb.bean.CRM_User  
File: com/pb/dao/impl/UserDaoImpl.java 
Line number: 23 

内容:
UserLoginAction:


public class UserLoginAction extends ActionSupport {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private String user_name;
private String user_pwd;

private String msg;

// 验证用户是否存在
@SuppressWarnings("unchecked")
public String userLogin() throws Exception {
System.out.println("用户名:" + user_name);
System.out.println("用户密码:" + user_pwd);
Map<String, Object> session = ActionContext.getContext().getSession();
Map<String, Object> request = (Map<String, Object>) ActionContext
.getContext().get("request");
System.out.println("request的类型是:"
+ ActionContext.getContext().get("request").getClass());
CRM_User user = new UserDaoImpl().userLogin(user_name, user_pwd);
System.out.println("用户电话:" + user.getUser_phone());

session.put("user", user);
session.put("user_id", user.getUser_id());
session.put("user_name", user.getUser_condition());
session.put("user_power", user.getUser_power());
session.put("user_id", user.getUser_isdel());
session.put("user_id", user.getUser_phone());
request.put("requestuser", user);
return SUCCESS;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public static long getSerialversionuid() {
return serialVersionUID;
}

public String getUser_name() {
return user_name;
}

public void setUser_name(String user_name) {
this.user_name = user_name;
}

public String getUser_pwd() {
return user_pwd;
}

public void setUser_pwd(String user_pwd) {
this.user_pwd = user_pwd;
}

}

IUserDao:

//通过用户名和用户密码查询用户(登录)
CRM_User userLogin(String username,String password)throws Exception;




UserDaoImpl:

@Override
public CRM_User userLogin(String username, String password)
throws Exception {
Session session=HibernateSessionFactory.getSession();
Transaction tx=session.beginTransaction();
String hql="from CRM_User as 1 where 1.user_name=? and 1.user_pwd=? and 1.user_isdel=0";
CRM_User user=(CRM_User)session.createSQLQuery(hql)
.setParameter(0, username).setParameter(1, password);
tx.commit();
return user;
}


CRM_User:


// 用户表id
private Integer user_id;
// 用户名(非空)
private String user_name;
// 用户真实姓名
private String user_realname;
// 用户密码(非空)
private String user_pwd;
// 用户权限 “0”系统管理员,“1”客户经理,“2”销售主管(非空)
private Integer user_power;
// 用户状态 “0”在职,“1”请假,“2病假”,“3”离职(非空)
private Integer user_condition;
// 用户电话
private String user_phone;
// 用户删除状态 “0”未删除,“1”已删除
private Integer user_isdel;


CRM_User.hbm.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.pb.bean.CRM_User" table="CRM_User">
<id name="user_id" type="java.lang.Integer">
<column name="USER_ID"  />
<generator class="sequence">
<param name="sequence">user_id_seq</param>
</generator>
</id>

<property name="user_name" type="java.lang.String">
<column name="USER_NAME" length="20" />
</property>
<property name="user_realname" type="java.lang.String">
<column name="USER_REALNAME" length="20"/>
</property>
<property name="user_pwd" type="java.lang.String">
<column name="USER_PWD" length="20"  />
</property>
<property name="user_power" type="java.lang.Integer">
<column name="USER_POWER"  not-null="true"/>
</property>
<property name="user_condition" type="java.lang.Integer">
<column name="USER_CONDITION" not-null="true" />
</property>
<property name="user_phone" type="java.lang.String">


<column name="USER_PHONE"  />
</property>
<property name="user_isdel" type="java.lang.Integer">
<column name="USER_ISDEL" not-null="true" />
</property>
</class>

</hibernate-mapping>

hql hibernate javaEE struts2 javaweb
[解决办法]
String hql="from CRM_User as 1 where 1.user_name=? and 1.user_pwd=? and 1.user_isdel=0";
    CRM_User user=(CRM_User)session.createSQLQuery(hql)
[解决办法]
你写的hql语句,用的sql查询
[解决办法]
CRM_User user=(CRM_User)session.createSQLQuery(hql)
            .setParameter(0, username).setParameter(1, password);


自己去看别人的SQLQuery是怎么用的。
[解决办法]
执行完查询语句session.createSQLQuery(hql).setParameter(0, username).setParameter(1, password); 返回的应该是List集合吧!        
[解决办法]
 返回 list , List list = session.createQuery(hql).setParameter(0, username).setParameter(1, password).list();
 
[解决办法]
CRM_User user=(CRM_User)session.createQuery(hql).setParameter(0, username).setParameter(1, password).uniqueResult();

热点排行