LoginAction.java代码如下:package com.mywork.action;import java.util.Iterator;
import java.util.List;import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;import com.mywork.hibernate.UserTable;
import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 8384655992107298607L;
private String username;
private String password; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @Override
public String execute() throws Exception { String user = null;
String pass = null;
String truepass = null;
UserTable ut = new UserTable();
user = ut.getUserName();
pass = ut.getUserPass(); SessionFactory sf = new Configuration().configure()
.buildSessionFactory();
Session session = sf.openSession();
Transaction tran = session.beginTransaction();
Query qu = session
.createQuery("from UserTable where UserTable.user_name='"
+ user + "'"); try {
Iterator it = qu.iterate();
ut = (UserTable) it.next();
truepass = ut.getUserPass(); } catch (Exception e) {
System.out.println("error!");
}
tran.commit();
sf.close(); if (pass.equals(truepass)) {
return "success";
} else {
return "error";
}
}}
其它映射文件以及hibernate.cfg.xml struts.xml web.xml 配置都正确
出现如下错误:
java.lang.NullPointerException
org.hibernate.hql.ast.tree.IdentNode.resolveAsNakedComponentPropertyRefLHS(IdentNode.java:195)
org.hibernate.hql.ast.tree.IdentNode.resolve(IdentNode.java:85)
org.hibernate.hql.ast.tree.DotNode.resolveFirstChild(DotNode.java:139)
org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:462)
org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4316)
org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1211)
org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4032)
org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3518)
org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1758)
org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
这段代码估计是哪里有问题 高手给看看 指正一下 完事立马结贴 在线等
我要实现的是用户的登陆验证(用户名和密码)
import java.util.List;import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;import com.mywork.hibernate.UserTable;
import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 8384655992107298607L;
private String username;
private String password; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @Override
public String execute() throws Exception { String user = null;
String pass = null;
String truepass = null;
UserTable ut = new UserTable();
user = ut.getUserName();
pass = ut.getUserPass(); SessionFactory sf = new Configuration().configure()
.buildSessionFactory();
Session session = sf.openSession();
Transaction tran = session.beginTransaction();
Query qu = session
.createQuery("from UserTable where UserTable.user_name='"
+ user + "'"); try {
Iterator it = qu.iterate();
ut = (UserTable) it.next();
truepass = ut.getUserPass(); } catch (Exception e) {
System.out.println("error!");
}
tran.commit();
sf.close(); if (pass.equals(truepass)) {
return "success";
} else {
return "error";
}
}}
其它映射文件以及hibernate.cfg.xml struts.xml web.xml 配置都正确
出现如下错误:
java.lang.NullPointerException
org.hibernate.hql.ast.tree.IdentNode.resolveAsNakedComponentPropertyRefLHS(IdentNode.java:195)
org.hibernate.hql.ast.tree.IdentNode.resolve(IdentNode.java:85)
org.hibernate.hql.ast.tree.DotNode.resolveFirstChild(DotNode.java:139)
org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:462)
org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4316)
org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1211)
org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4032)
org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3518)
org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1758)
org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
这段代码估计是哪里有问题 高手给看看 指正一下 完事立马结贴 在线等
我要实现的是用户的登陆验证(用户名和密码)
解决方案 »
- JAVA新手用ISP做注册、登录验证,求大神梳理一下业务逻辑
- 关于getObject取出日期格式问题,各位高手帮忙指点指点啊~~~
- tomcat中使用Runtime为何阻塞?
- 关于JSP中的ResultSet
- 关于批量导入数据的问题~
- 新手求教一郁闷问题...老鸟指点一下...
- 请教关于WEB打印范围的问题,document.all.WebBrowser.ExecWB
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- 在哪里注册域名比较好啊,大家一般在哪里注册呢 ?
- 菜鸟求救··SQL2005连接服务器的问题
- 请问有没有开源的无刷新BLOG? AJAX框架不限
- 郁闷至极的struts2的问题
.createQuery("from UserTable u where u.user_name='"
+ user + "'");
.createQuery("from UserTable where user_name='"
+ user + "'");
.createQuery("from UserTable where UserTable.user_name='"
+ user + "'");
应该是这里取到的qu是null
org.hibernate.QueryException: could not resolve property: user_name of: com.mywork.hibernate.UserTable [from com.mywork.hibernate.UserTable u where u.user_name='null']
org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43)
+ user + "'"里面的u.user_name的user_name是不是指的我映射文件UserTable.hbm.xml里的
<property name="userName" type="java.lang.String">
<column name="user_name" length="50" not-null="true" unique="true" />里面的name="userName"
也就是说我要执行查询语句时是执行这一句
from UserTable u where u.user_name='"
+ user + "'"
还是执行这一句
from UserTable u where u.userName='"
+ user + "'"
u.user_name是类里面的属性,不是配置文件中的
.createQuery("from UserTable u where u.user_name='"
+ username + "'"); 这么写还有就是映射字段名最好不要有下划线,user_name这样的