程序如下,最后报错,Struts+hibernate
package hiber;public class User {
private String password;
private String username;
private int id;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
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;public class UserDAO {
public List<User> show(){
List list=null;
try{
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String sql = "select * from user where id=1";
Query query = session.createSQLQuery(sql); list = query.list(); tx.commit();
session.close();
sessionFactory.close();
}catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
package hiber;import java.util.Iterator;
import java.util.List;public class UserAction {
public static void main(String[] args) {
UserDAO userDAO = new UserDAO();
List<User> list =userDAO.show();
Iterator<User> iterator = list.iterator();
System.out.print(iterator.next().getId());
}
}
package hiber;public class User {
private String password;
private String username;
private int id;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
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;public class UserDAO {
public List<User> show(){
List list=null;
try{
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String sql = "select * from user where id=1";
Query query = session.createSQLQuery(sql); list = query.list(); tx.commit();
session.close();
sessionFactory.close();
}catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
package hiber;import java.util.Iterator;
import java.util.List;public class UserAction {
public static void main(String[] args) {
UserDAO userDAO = new UserDAO();
List<User> list =userDAO.show();
Iterator<User> iterator = list.iterator();
System.out.print(iterator.next().getId());
}
}
报错为:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
at hiber.UserAction.main(UserAction.java:12)
你是否用log4j打印日志信息呢?
有用单例模式去调试么?这可能是跟你的线程有关,因为他报出的异常时在主方法运行时,一个线程出现了问题,而这个问题具体我也不知道
关键代码没贴出来java.lang.ClassCastException
抛出这个异常表示代码企图投射一个对象到一个并不是实例的子类,举例以下代码就会产生一个ClassCastException:
Object x = new Integer(0);
System.out.println((String)x);