有两张表:bookinfo(包含bookid,bookname,author,catename(外键)等字段);
categroyinfo(包含cateid,catename等字段);现要在一个jsp页面的table表中显示两张表的内容。
我分别建了两个bean,获得了两个list,可是不好在<c:foreach>中遍历。
要怎么将两张表中查询的内容放到一个list中?
或者别的解决思路是什么。
categroyinfo(包含cateid,catename等字段);现要在一个jsp页面的table表中显示两张表的内容。
我分别建了两个bean,获得了两个list,可是不好在<c:foreach>中遍历。
要怎么将两张表中查询的内容放到一个list中?
或者别的解决思路是什么。
解决方案 »
- 装好myeclipse 6.5、tomcat不见有web browers
- 求教 spring mvc3 的路径配置问题
- 中文的范围
- 当当网首页查询效果怎么实现???
- 单独部署一个EJB MODULE,引入的jar包应该放在哪?MANIFEST.MF应该怎么写?
- ActiveMQ问题
- 请问这个报错怎么解决?
- 哈哈,问这个问题有点傻,是关于JBOSS设置的,老鸟们帮帮我这菜鸟吧
- 我想从Oracle官网下载JSF的jar包,不知道该下载哪个
- 【求助】oracle官网上提供的JavaEE_SDK一个都不能装,还能搭建JavaEE环境么?
- TOMCAT的测试,高手请进!
- 我在eclipse里创建一个J2EE项目,浏览不了里面的两个JSP文件
如果是hibernate,bookinfo 中可以包含一个categroyinfo的bean不就可以了吗?
不知道你的持久层用的什么。如果不是JDBC那就是在bookinfo中声明一个categroyinfo对象属性并提供get/set
不需要两个bean、list。显示的时候就遍历一个就可以了!
你是用的JDBC还是什么?说清楚点嘛...
如果用hibernate更加简单,直接点属性不就完了吗。
Bookinfo bto = new Bookinfo(); public List<Bookinfo> selectR() {
List<Bookinfo> lst = new ArrayList<Bookinfo>();
Connection conn = null;
PreparedStatement pStatement = null;
ResultSet rs = null;
try {
String sql = "select bookid,bookname,author,count,cateid,reco from bookinfo";
conn = DBConnection.getConnection();
pStatement = conn.prepareStatement(sql);
rs = pStatement.executeQuery(sql);
while (rs.next()) {
Bookinfo bto = new Bookinfo();
bto.setBookId(rs.getInt(1));
bto.setBookName(rs.getString(2));
bto.setAuthor(rs.getString(3));
bto.setCount(rs.getInt(4));
bto.setCateId(rs.getInt(5));
bto.setReco(rs.getInt(6));
lst.add(bto);
} } catch (Exception e) {
e.printStackTrace();
} return lst;
} public List<Bookinfo> selectR(boolean isgetCate) {
List<Bookinfo> lst2 = selectR();
if (!isgetCate) {
return lst2;
}
CateinfoDao dao = new CateinfoDao();
Categroyinfo dto = new Categroyinfo();
List<Categroyinfo> clist=new ArrayList<Categroyinfo>();
// clist=dto.setCateId(dao.selectById(dto.getCateId()));
// bto.setList(clist);
// lst2.add(bto);
// return lst2;
}
}
把你的SQL改成以上SQL。
然后在Bookinfo 中添加一个private String cateName;//提供getter/setter
bto.setCateName(rs.getString("catename"));
这样就完了,显示就不用我说了!
但我更想知道,在bookinfo里面定义了categroyinfo属性后,怎么实现。!!!
还有public List<Categroyinfo> selectXx(){} 以及public List<Bookinfo> selectR() {}这样定义的语法是什么意思,麻烦给我大概讲一下
你的意思是说,你在bookinfo中声明:
private Categroyinfo cate;//提供getter/setter方法
是这样吗?如果是这样,那么显然,调用setCate()时要传一个Categroyinfo 对象,那么怎样它填充进去呢?这里用hibernate非常好实现,用JDBC就麻烦了,你要做以下操作:
Categroyinfo cate = new Categroyinfo();
cate.setCateName(rs.getString("catename"));
bto.setCate(cate);
这样,不就比直接在bookinfo中定义一个String cateName复杂多了吗?public List<Categroyinfo> selectXx(){} 以及public List<Bookinfo> selectR() {}
这不是你自己定义的方法吗?List<Categroyinfo>,表示这个方法返回的是一个List类型,我们知道list里可以存任何对象,即Object对象!你的定义是指,这个方法里的list只能够存Categroyinfo对象,否则编译有错!明白了吧,那么后面的也就一样咯...