第一次使用Hibernate,果真还是有错误,来个人帮我看看问题所在
【错误提示】
javax.servlet.ServletException: No data type for node: org.hibernate.hql.ast.IdentNode
+-[IDENT] IdentNode: 'user_name' {originalText=user_name}
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
【Staff.java】
package com.pingan.pccw.hibernate.object;
public class Staff {
private String username=null;
private String ctiusername=null;
private String ctipassword=null;
private String maxiusername=null;
private String maxipassword=null;
private String role=null;
private String userid=null;
private String extension=null;
public Staff(){
}
public void setExtension(String extension){
this.extension=extension;
}
public void setUsername(String username){
this.username=username;
}
public void setCtiusername(String ctiusername){
this.ctiusername=ctiusername;
}
public void setCtipassword(String ctipassword){
this.ctipassword=ctipassword;
}
public void setMaxiusername(String maxiusername){
this.maxiusername=maxiusername;
}
public void setMaxipassword(String maxipassword){
this.maxipassword=maxipassword;
}
public void setRole(String role){
this.role=role;
}
public void setUserid(String userid){
this.userid=userid;
}
public String getUsername(){
return this.username;
}
public String getCtiusername(){
return this.ctiusername;
}
public String getCtipassword(){
return this.ctipassword;
}
public String getMaxiusername(){
return this.maxiusername;
}
public String getMaxipassword(){
return this.maxipassword;
}
public String getRole(){
return this.role;
}
public String getUserid(){
return this.userid;
}
public String getExtension(){
return this.extension;
}
}
【Staff.hbm.xml】
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.pingan.pccw.hibernate.object.Staff" table="PA_CSE">
<id name="userid" type="string" unsaved-value="null">
<column name="user_id" sql-type="varchar(20)" not-null="true"/>
<generator class="uuid.hex"/>
</id>
<property name="username">
<column name="user_name" sql-type="nvarchar(50)" not-null="false"/>
</property>
<property name="ctiusername">
<column name="user_skp_id" sql-type="varchar(10)" not-null="false"/>
</property>
<property name="ctipassword">
<column name="user_skp_pwd" sql-type="varchar(10)" not-null="false"/>
</property>
<property name="role">
<column name="user_type" sql-type="varchar(2)" not-null="false"/>
</property>
</class>
</hibernate-mapping>
【hibernate.cfg.xml】
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="myeclipse.connection.profile">PingAn</property>
<property name="connection.url">jdbc:jtds:sqlserver://192.168.62.13:1433/PingAn</property>
<property name="connection.username">sa</property>
<property name="connection.password">sa</property>
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="show_sql">true</property>
<mapping resource="/Staff.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
【LoginValidate】
package com.pingan.pccw.business;
import javax.sql.DataSource;
import org.hibernate.*;
import com.pingan.pccw.hibernate.*;
import com.pingan.pccw.hibernate.object.Staff;
import java.util.Iterator;
public class LoginValidate {
private DataSource dataSource;
public void setDataSource(DataSource dataSource){
this.dataSource=dataSource;
}
public DataSource getDataSource(){
return this.dataSource;
}
public boolean isValidate(String userid,String password,String extension,boolean bind){
Session session = HibernateUtil.currentSession();
Transaction tx= session.beginTransaction();
Query query=session.createQuery("SELECT user_name,user_type,user_skp_id,user_skp_pwd,extension FROM PA_CSE WHERE user_id=:user_id AND user_pwd =:user_pwd");
query.setString("user_id",userid);
query.setString("user_pwd",password);
Iterator it=query.iterate();
if (it.hasNext()) {
Staff staff=(Staff)it.next();
System.out.print("username:"+staff.getUsername()+";ctiusername:"+staff.getCtiusername()+";ctipassword:"+staff.getCtipassword()+";extension:"+staff.getExtension()+";role:"+staff.getRole());
tx.commit();
HibernateUtil.closeSession();
return true;
}
else{
tx.commit();
HibernateUtil.closeSession();
return false;
}
}
}
【数据表结构】
Field Type null
==================================================
user_id varchar(20) not null (primary key)
user_pwd varchar(20)
user_name nvarchar(50)
user_type varchar(2)
user_skp_id varchar(10)
user_skp_pwd varchar(10)
extension varchar(50)