以下代码执行的时候发生错误,提示为:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.ClassManer.Hibernate.User应该是类型转换不了,不知道怎么解决public class LoginAction extends ActionSupport implements ServletRequestAware { private String username;
private String password;
private HttpServletRequest request; @Override
public String execute() throws Exception {
// SessionFactory sf=new AnnotationConfiguration().
// configure().buildSessionFactory();
try {
Configuration conf= new Configuration().configure();
SessionFactory sf =conf.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
username = this.getUsername();
password = this.getPassword();
String sqlQuery = "select u.* from user u where " + "u.username= '"
+ username + "'";
//session.createQuery(arg0)
Query lQuery = session.createSQLQuery(sqlQuery);
ArrayList<?> userlist = (ArrayList<?>) lQuery.list();
tx.commit();
session.close(); User user = new User();
if ((null != userlist) && (userlist.size() > 0)) {
user = (User) (userlist.get(0));
if (!user.getPassword().equals(password)) {
return "failer";
}
} else
return "failer";
} catch (HibernateException e) {
e.printStackTrace();
return "failer";
}
return "success";
} @Override
public void setServletRequest(HttpServletRequest arg0) {
// TODO Auto-generated method stub
} /**
* @param password
* the password to set
*/
public void setPassword(String password) {
this.password = password;
} /**
* @return the password
*/
public String getPassword() {
return password;
} /**
* @param request
* the request to set
*/
public void setRequest(HttpServletRequest request) {
this.request = request;
} /**
* @return the request
*/
public HttpServletRequest getRequest() {
return request;
} /**
* @param username
* the username to set
*/
public void setUsername(String username) {
this.username = username;
} /**
* @return the username
*/
public String getUsername() {
return username;
}}
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.ClassManer.Hibernate.User应该是类型转换不了,不知道怎么解决public class LoginAction extends ActionSupport implements ServletRequestAware { private String username;
private String password;
private HttpServletRequest request; @Override
public String execute() throws Exception {
// SessionFactory sf=new AnnotationConfiguration().
// configure().buildSessionFactory();
try {
Configuration conf= new Configuration().configure();
SessionFactory sf =conf.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
username = this.getUsername();
password = this.getPassword();
String sqlQuery = "select u.* from user u where " + "u.username= '"
+ username + "'";
//session.createQuery(arg0)
Query lQuery = session.createSQLQuery(sqlQuery);
ArrayList<?> userlist = (ArrayList<?>) lQuery.list();
tx.commit();
session.close(); User user = new User();
if ((null != userlist) && (userlist.size() > 0)) {
user = (User) (userlist.get(0));
if (!user.getPassword().equals(password)) {
return "failer";
}
} else
return "failer";
} catch (HibernateException e) {
e.printStackTrace();
return "failer";
}
return "success";
} @Override
public void setServletRequest(HttpServletRequest arg0) {
// TODO Auto-generated method stub
} /**
* @param password
* the password to set
*/
public void setPassword(String password) {
this.password = password;
} /**
* @return the password
*/
public String getPassword() {
return password;
} /**
* @param request
* the request to set
*/
public void setRequest(HttpServletRequest request) {
this.request = request;
} /**
* @return the request
*/
public HttpServletRequest getRequest() {
return request;
} /**
* @param username
* the username to set
*/
public void setUsername(String username) {
this.username = username;
} /**
* @return the username
*/
public String getUsername() {
return username;
}}
解决方案 »
- 我的struts怎么跳到Action了就不执行方法啊?
- 这种写法到底算什么?算单态吗?我要怎么用呢????
- java读写cookie
- 搞了半天也不懂!! 求高手指点!!
- 又是一个反射的小问题 ;)
- struts 2.0 中 struts.xml 的位置的问题
- 大菜鸟在线请教:一个在JBOSS下实现一个JMS实例的全部过程,高手们顺便温习一下:)
- 一个最简单的socket的小程序,为什么会出现java.net.SocketException Connection reset by peer?
- 关于java写文件的问题!紧急求救!!!!
- Struts2 Action 通配符无法访问
- 有关hashmap的key
- java输出马走日的路径问题
改为大写试试,查询所有的前面的select 可以不要吧、、、String sqlQuery = "from User u where " + "u.username= '"
+ username + "'";
sql语句去掉select之后出错了
改成大写,是根据hibernate配置的类对应的表来查询,返回值他就直接封装成这个对象了
。这样把select 应该是可以去掉的
+ username + "'";这里的user对应的是你的实体Bean名称
多谢,刚开始学,才知道应该是实体Bean的名字,改成大写去掉Select之后,将
Query lQuery = session.createSQLQuery(sqlQuery);
改为
Query lQuery = session.createQuery(sqlQuery);
终于正确了。