"id" "name" "parentid""classid"
1 "福建省" "12" 3
2 "湖北省" "12" 3
3 "辽宁省" "12" 3
4 "武汉市" "2" 4
5 "荆州市" "2" 4
6 "宜昌市" "2" 4
7 "沈阳市" "3" 4
8 "大连" "3" 4
9 "盘锦市" "3" 4
10 "亚洲" "0" 1
11 "欧洲" "0" 1
12 "中国" "10" 2
13 "法国" "11" 2
14 "韩国" "10" 0
15 "汉城" "14" 0
16 "汉城区" "15" 0
17 "巴黎" "13" 0
18 "巴黎区" "17" 0
19 "福州" "1" 0
20 "德国" "11" 0
21 "柏林" "20" 0
22 "柏林区" "21" 0
23 "开发区" "8" 0数据库里的数据如上..
我搜索了一下以前的文章..好像有两三种方法实现无限分类
1,递归函数的方法.
2,中值排序
3,xml
代码大多数都是asp和php的...很少有jsp的...
所以我想写一个jsp的..无奈在排序问题上卡住了...
我的思路是按照第一种来的..
首先从数据库里读出所有的数据.保存在一个对象数组里.
之后想对这个对象数组进行排序..
新对象数组里的对象是按照
10 "亚洲" "0" 1
12 "中国" "10" 2
3 "辽宁省" "12" 3
8 "大连" "3" 4
......
这样的排序
最好能输出到一个jsp页面,的一个option选项框里..
亚洲
中国
辽宁省
大连市
韩国
欧洲
排序的时候..我只知道利用递归.
是一个二叉树的建立过程,之后按照前序输出就能完成排序..
在这之前我可是把8-9个java/jsp论坛都search一遍.均无结果...
小弟不是不愿意思考偷懒..而是代码水平真的没有那么高..T_T
还请各位高手多多帮忙.....
PS:另外XML可能实现无限分类的吗?如何实现呢?以下是我写的部分代码片断:
public class TypeDAO
{ public Type[] loadType() throws SQLException
{
ArrayList al = new ArrayList();
DataBaseBean db = DataBaseBean.getInstance();
db.prepareStatement("select * from `type`");
ResultSet rs = db.executeQuery();
while(rs.next())
{
Type type = new Type();
type.setId(rs.getInt("id"));
type.setName(rs.getString("name"));
type.setParentid(rs.getInt("parentid"));
al.add(type);
}
db.close();
Type[] type = new Type[al.size()];
al.toArray(type);
return type;
}
public void getchile(int pid) throws SQLException
{
Type[] type =loadType();
for(int i=0;i<type.length;i++)
{
if(type[i].getParentid()==pid)
getchile(type[i].getId());
else
........
}
}
}
1 "福建省" "12" 3
2 "湖北省" "12" 3
3 "辽宁省" "12" 3
4 "武汉市" "2" 4
5 "荆州市" "2" 4
6 "宜昌市" "2" 4
7 "沈阳市" "3" 4
8 "大连" "3" 4
9 "盘锦市" "3" 4
10 "亚洲" "0" 1
11 "欧洲" "0" 1
12 "中国" "10" 2
13 "法国" "11" 2
14 "韩国" "10" 0
15 "汉城" "14" 0
16 "汉城区" "15" 0
17 "巴黎" "13" 0
18 "巴黎区" "17" 0
19 "福州" "1" 0
20 "德国" "11" 0
21 "柏林" "20" 0
22 "柏林区" "21" 0
23 "开发区" "8" 0数据库里的数据如上..
我搜索了一下以前的文章..好像有两三种方法实现无限分类
1,递归函数的方法.
2,中值排序
3,xml
代码大多数都是asp和php的...很少有jsp的...
所以我想写一个jsp的..无奈在排序问题上卡住了...
我的思路是按照第一种来的..
首先从数据库里读出所有的数据.保存在一个对象数组里.
之后想对这个对象数组进行排序..
新对象数组里的对象是按照
10 "亚洲" "0" 1
12 "中国" "10" 2
3 "辽宁省" "12" 3
8 "大连" "3" 4
......
这样的排序
最好能输出到一个jsp页面,的一个option选项框里..
亚洲
中国
辽宁省
大连市
韩国
欧洲
排序的时候..我只知道利用递归.
是一个二叉树的建立过程,之后按照前序输出就能完成排序..
在这之前我可是把8-9个java/jsp论坛都search一遍.均无结果...
小弟不是不愿意思考偷懒..而是代码水平真的没有那么高..T_T
还请各位高手多多帮忙.....
PS:另外XML可能实现无限分类的吗?如何实现呢?以下是我写的部分代码片断:
public class TypeDAO
{ public Type[] loadType() throws SQLException
{
ArrayList al = new ArrayList();
DataBaseBean db = DataBaseBean.getInstance();
db.prepareStatement("select * from `type`");
ResultSet rs = db.executeQuery();
while(rs.next())
{
Type type = new Type();
type.setId(rs.getInt("id"));
type.setName(rs.getString("name"));
type.setParentid(rs.getInt("parentid"));
al.add(type);
}
db.close();
Type[] type = new Type[al.size()];
al.toArray(type);
return type;
}
public void getchile(int pid) throws SQLException
{
Type[] type =loadType();
for(int i=0;i<type.length;i++)
{
if(type[i].getParentid()==pid)
getchile(type[i].getId());
else
........
}
}
}
暂时用不到...
自己顶一下吧..
恩?我想要的只是在jsp页面里的option选项框显示...
只是拿地名做一个例子...
实际还是需要的..
xml当然可以了,非常简单,参考文件夹河文件的关系就可以了。比如:
<?xml version="1.0" encoding="UTF-8"?>
<dir name="root">.
<dir name="dir1层">
<file name="2层file"/>
<dir name="dir3层">
<dir name="dir4层">
<file name="5层file"/>
<dir name="dir5层">
<file name="6层file"/>
<!-- 无限层次 -->
</dir>
<file name="3层file"/>
</dir>
<file name="4层file1"/>
<file name="4层file2"/>
</dir>
<file name="3层file"/>
</dir>
<file name="1层file"/>
</dir>
最后还是否需要将这个关系持久化到数据库里呢?
还是在数据库里不用任何表示..直接对分类的操作直接增删改查这个xml文件呢?
能否给点教程一类的?
那样的话..好像还是有一定的局限性呢...
如果是很多很多分类呢..
名字那个字段的长度?