请教关于hibernate的入门级问题

stoneppp 2008-11-19 02:16:59
成绩表三个字段:
姓名 科目 分数
a 语文 89
a 数学 88
b 语文 86
……
我检索出的结果是
姓名 语文分数 数学分数
a 89 88
b 86 ……
我把检索结果给一个list,
我的问题是我要在页面中显示list中的每个对象,如何从list中一个一个取出这些对象?因为不知道这
些对象的类型啊,没有与这些对象对应的类。
不像检索结果为“a 语文 89;a 数学 88;……”时就是Cj型(有对应的类‘Cj’)的对象,可以一个个从list中给取出Cj型的对象。
才开始学hibernate等东西,请大侠指点。
愿意的话可以留电话我给你打:)
...全文
95 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
stoneppp 2008-11-19
  • 打赏
  • 举报
回复
回2楼,你的检索结果里包含的对象的类型是明确的,Cat型和Student型。不是我问的:)
stoneppp 2008-11-19
  • 打赏
  • 举报
回复
回4楼,检索语句很简单,对这个问题也不重要。



回5楼,你说“后面对其操作时你再转换为相应类型 ”
我问的就是现在没有一个类型和检索结果里的对象对应啊。
1楼说“就建一个这样的类”,我在10楼回复了,不知对不对。
stoneppp 2008-11-19
  • 打赏
  • 举报
回复
回1楼,这种类是跟数据库中的表对应的,同时还要在hbm.xml里设置表、字段和类及属性的对应,检索前是不存在表和检索结果对应的,所以不能设置。
tzb08 2008-11-19
  • 打赏
  • 举报
回复
List<Table> list = new ArrayList<Table>();


try {
List lt = session.createQuery("from Table").list();
for(int i=0;i<lt.size();i++){
list.add((Table)ls.get(i));
}
return list;
} catch (Exception ex) {
System.err.println(ex.getMessage());
} finally {
HibernateSessionFactory.closeSession();
}
sunshinegyy 2008-11-19
  • 打赏
  • 举报
回复
MyEclipse 6 Java 开发中文教程-刘长炯
http://download.csdn.net/source/701304
这本书里讲的比较详细,我就是这么入门的
sunshinegyy 2008-11-19
  • 打赏
  • 举报
回复
1. 使用反向工程快速生成Java POJO 类,映射文件和DAO

2. 导入生成的类,list内对象为类的实例
yantairan 2008-11-19
  • 打赏
  • 举报
回复
list 中每一条记录放的是Object[]
通过数组的访问方法就可以取出来

参考:
String hql = "----------------------";
List l = new ArrayList();
List returnL = new ArrayList();
try{
l = find(hql);
if(!l.isEmpty()){
for(Iterator it = l.iterator();it.hasNext();)
{
Object[] obj = (Object[])it.next();
Node2fieldTemp hf = new Node2fieldTemp((String)obj[0],(Float)obj[1],(Float)obj[2],(Integer)obj[3],(Integer)obj[4],(String)obj[5],(String)obj[6],(Integer)obj[7],(String)obj[8],(String)obj[9],"");
returnL.add(hf);
}
}
}catch(DaoException e){
e.printStackTrace();
}
  • 打赏
  • 举报
回复
如何从List 中获取数据

假设 list里装的对象 为Test类(有个id和name字段)申明的对象

List list=(List)request.getAttribute("m");
if(list!=null&&list.size()!=0){
for(int i=0;i <list.size();i++){
Test test=(Test)list.get(i);
}
}else{
//没有值时处理代码
}

你要是不知道List对象的类型,可以使用Object先来临时保存数据,后面对其操作时你再转换为相应类型
zou_wei_forever 2008-11-19
  • 打赏
  • 举报
回复
你的检索语句是什么?
五哥 2008-11-19
  • 打赏
  • 举报
回复
要不你把邮箱给我,我把我的工程给你,我也是刚学。
五哥 2008-11-19
  • 打赏
  • 举报
回复
我是用MyEclipse建的工程

package example.test;

import java.util.Iterator;
import java.util.List;

import dao.HibernateSessionFactory;
import example.util.*;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class CatTest {

Session session = null;
Transaction tx = null;

public static void main(String[] args) {
// CatDAO dao = new CatDAO() ;
CatTest ct = new CatTest();
// ct.tx = dao.getSession().beginTransaction() ;
// Cat c = new Cat() ;
// c.setCatId("1003") ;
// c.setName("maomao" ) ;
// c.setSex("1" ) ;
// c.setWeight((float) 3.032) ;
// dao.save(c) ;
// ct.tx.commit();
// List lt = dao.findAll() ;

List lt = ct.getAllCats();
if (lt != null) {
Iterator it = lt.iterator();
while (it.hasNext()) {
Cat cat = (Cat) it.next();
System.out.println("catId :" + cat.getCatId());
System.out.println("name :" + cat.getName());
}
}


List stdlt = ct.getStudents();
System.out.println("size :"+stdlt.size()) ;
if (stdlt != null){
Iterator stdit = stdlt.iterator();
while (stdit.hasNext()){
Student std=(Student) stdit.next() ;
System.out.println(" name :" +std.getUserName());
System.out.println("Age :"+std.getAge());
}
}
}

public List getAllCats() {
session = HibernateSessionFactory.getSession();
List catlist = null;
try {
tx = session.beginTransaction();
catlist = session.createQuery("from Cat").list();
// tx.commit();
return catlist;
} catch (Exception ex) {
System.err.println(ex.getMessage());
return null;
} finally {
HibernateSessionFactory.closeSession();
}
}

public List getStudents(){
session = HibernateSessionFactory.getSession() ;
List stdlist = null ;
try {
tx = session.beginTransaction();
stdlist = session.createQuery("from Student").list() ;
return stdlist ;
}catch(Exception ex){
System.err.println(ex.getMessage()) ;
return null ;
}
finally{
HibernateSessionFactory.closeSession() ;
}
}
}




tt2451 2008-11-19
  • 打赏
  • 举报
回复
没有这样的类就建一个这样的类

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧