今天遇到一个要生成一个下拉列表框的问题,我的想法是:将数据库内的所有数据都存储到一个List里面,再在前台遍历整个list。
执行效果图:
水果
→苹果
→→苹果系列1
→→苹果系列2
→→苹果系列3
→→苹果系列4
→梨
→桃子
学习用品
→笔
→→铅笔
→→钢笔
→→毛笔
→笔记本
具体问题如下:
所要获取的数据是在同一个表内,表字段有 hplb_id hplb_mingcheng hplb_shangjiid
想要解决此类问题,最好的方法,就是利用递归。
先说一下,我是利用hibernate来做的数据库查询,查询的表名为:Tb_Huopinleibie,对应的实体类为TbHuopinleibie,还用到一个dao类:HuopinleibieDaoImpl。
//TbHuopinleibie实体类
public class TbHuopinleibie{
// Fields
@Override
public String toString() {
return this.hplbMingcheng;
}
private Integer hplbId;
private String hplbMingcheng;
private Integer hplbShangjiId;
// Constructors
/** default constructor */
public TbHuopinleibie() {
}
// Property accessors
public Integer getHplbId() {
return this.hplbId;
}
public void setHplbId(Integer hplbId) {
this.hplbId = hplbId;
}
public String getHplbMingcheng() {
return this.hplbMingcheng;
}
public void setHplbMingcheng(String hplbMingcheng) {
this.hplbMingcheng = hplbMingcheng;
}
public Integer getHplbShangjiId() {
return this.hplbShangjiId;
}
public void setHplbShangjiId(Integer hplbShangjiId) {
this.hplbShangjiId = hplbShangjiId;
}
}
//HuopinleibieDaoImpl 完成数据库的查询,这里如果你没有用hibernate也可以自己封装这个类,只要能够完成数据库的查询就可以了。
import java.util.*;
public class HuopinleibieDaoImpl {
public List queryByHQL(String hql) {
SessionFactory factory = HibernateUtils.getSessionFactory();
Session session = null;
Transaction ts = null;
List list = null;
try {
session = factory.openSession();
ts = session.beginTransaction();
ts.begin();
list = session.createQuery(hql).list();
ts.commit();
} c