问题这样:
用hibernate查询数据库取得结果放在list中.
select code,name from tbl; 现在我想根据code得到name
例如:code=1001,name=csdn_one
code=1002,name=csdn_two
当我传入code=1001时,返回csnd_one;不知道我描述的明不明白,请指点!!多谢!
用hibernate查询数据库取得结果放在list中.
select code,name from tbl; 现在我想根据code得到name
例如:code=1001,name=csdn_one
code=1002,name=csdn_two
当我传入code=1001时,返回csnd_one;不知道我描述的明不明白,请指点!!多谢!
循环List,把这些对象(或map)取出来,那你传进来的参数和这些对象(或map)中的"code"比较,如果相同,就返回"name"的值.拿Map举例:
for(int i = 0; i < list.size(); i++) {
Map map = (Map)list.get(i);
if("1001".equals(map.get("code"))) {
return map.get("name");
}
}
不过,要是检索出多条数据的话,怎么往MAP里边放呢?学习ing
现在我是用hibernate从数据库中查的结果,返回的应该是一个Object类型吧?
那么从Object类型中,我应该怎样取值循环对比??
Result model = (Result)list.get(i);
if("1001".equals(model.getCode())) {
return model.getName();
}
}
我是新手,您说的意思大体我明白,我想只针对我这个问题请您帮忙给个答案.
我的意思就是想说:对于返回的list中的数据,想要提取出来
您说的Map我运行报的数据转换错误,而用Result时没有get这个方法,因为我并不是存在pojo中.
用hibernate的时候,我用的是
String sql="select code,name from tbl"
List list=...createQuery(sql.toString()).list();
然后把其中的name值都打印出来.
这样说,不知道清楚不?
String code=o[0];
System.out.println("code is :"+code);
这样我可以取出code的值,但name的值我就不知道怎么取了.
这样吧,你断点跑进去看看List中的那些值是怎么放的,是不是这个name,放在o[1]里?
get(i)时转换成Object,这样,o[0]取的是第i行第一个字段的值,o[1]取的是第i行第二个字段的值,我在一开始也试了一次,o[1],但那时我把sql写成select code from tbl了,所以没再意这一点!多谢你!
Connection conn=session.connection();
Statement st=conn.CreateStatement();
ResultSet rs=st.executeQuery("select code,name from tbl")....
你可以把你想要的code=1001作为参数
select name from tbl where code = 1001 ;
这样不知道满足你的要求否