首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

100,该如何解决

2012-01-06 
100node_idvarchar2(50),//节点代码parent_idvarchar2(50),//父节点代码node_namevarchar2(30),//节点名称

100
node_id   varchar2(50),   //节点代码
parent_id   varchar2(50),   //父节点代码
node_name   varchar2(30),   //节点名称
isnt_avile   varchar2(2),   //是否有效
remark   varchar2(100),   //备注

利用这个表。。

怎么用递归查询出来啊?

很急。。。

[解决办法]
一条sql的话,要根据数据库不同来处理,比如db2用with

在程序中处理的话,就容易很多了,用循环就可以完成了。
[解决办法]
额。。我就是要通过程序来循环。。。可就是不知道怎么循环。。各位帮帮手吧。。


从我这个表中用程序代码来 查询出来!~

具体代码啊。。谢谢
[解决办法]
把数据例子说出来看看
[解决办法]
关注
[解决办法]
要查什么
[解决办法]
node_id //节点代码 parent_id //父节点代码 node_name varchar2(30)
1 -1 中国
2 1 湖南省
3 1 广东省
4 2 长沙市
5 4 五一路
6 2 浏阳
7 5 五一广场
8 3 广州

用程序查出来的表现形式是:

中国
  湖南省
    长沙市
      五一路
        五一广场
    浏阳
  广东省
    广州
[解决办法]
天啊。。UP
[解决办法]
頂啊。
[解决办法]
谁能告诉我啊。
[解决办法]
String id=request.getParameter( "id ");
sql= "select * from table while parentid= "+id;//查询子节点
[解决办法]

[解决办法]
汗。我是要全部展现。。通过一个循环全部展现出来,不是要展示某一条数据
[解决办法]
真的没人帮忙么?

[解决办法]
用dtree的话倒是容易实现上面所说的
[解决办法]
最好加一个 子节点个数
第一次读取parentid为0的记录

判断 如果子节点个数不为零
允许有onClick();//用于读取 parentid为该记录id的子节点
写个函数 根据 select * from table while parentid= "+id;//查询子节点
并把该记录集返回 并打印到页面
当onClick()被触发然后就调用 读取记录的动作(.jsp or servlet);可以用ajax触发查找子节点的函数
(查询数据库并返回的部分可以写到 servlet里 也可以用 struts的action)
不知道说清楚没
大概就是这个思路
最好不要一次把记录集都查找出来
[解决办法]
谢谢了。。。
[解决办法]
我写的很相似的一段代码,可以参考

package mypackage;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import java.util.List;
import javax.swing.tree.*;
import javax.swing.table.*;


public class ClassBrowse
{
public static void main(String[] args) throws Exception


{
new MyFrame();
}

}

class MyFrame extends JFrame
{
public MyFrame()
{
setSize(500, 500);
setResizable(false);
setTitle( "ShowStudentInfomation ");
setLayout(null);
JScrollPane treePanel = TreePanel.getScrollPanel();
JScrollPane showPanel = ShowStudentPanel.getScrollPanel();

treePanel.setBounds(0, 0, 100, 500);
showPanel.setBounds(100, 0, 400, 500);
Container contentPane = getContentPane();
contentPane.add(treePanel);
contentPane.add(showPanel);
this.setVisible(true);
}


}

class TreePanel
{
public static JScrollPane getScrollPanel()
{
try
{
ConnectDB m = ConnectDB.getInstance();
DefaultMutableTreeNode root = m.getRootOrg();

m.selectSonNode(root);

JTree tree = new JTree(root);
panel = new JScrollPane(tree);
}
catch(Exception e)
{
panel = new JScrollPane();
System.out.println(e);
}

return panel;
}

private static JScrollPane panel;
}

class ShowStudentPanel extends JScrollPane
{
public static JScrollPane getScrollPanel()
{
getTable( "111 ");
return new JScrollPane(table);
}

public static JTable getTable(String classId)
{
//classId = "111 ";
try
{
String[][] array = ConnectDB.getInstance().selectStudentByClassId(classId);
String[] names = { "学号 ", "姓名 ", "性别 ", "出生日期 ", "电子邮件 "};

for(int i = 0; i < array.length; i++)
{
for(int j = 0; j < array[i].length; j++)
{
System.out.println(array[i][j]);
}
}

table = new JTable(array, names);

}
catch(Exception e)
{
System.out.println(e);
}

return table;
}

private static JTable table;
}

class ConnectDB
{
public static ConnectDB getInstance()
{
return new ConnectDB();
}

private ConnectDB()
{
list = new ArrayList();
}

public Connection getConnection()
{
try
{
Class.forName(driverClass);
con=DriverManager.getConnection(URL);
}
catch(Exception e)
{
System.out.println(e);
}

return con;
}

public void close()
{
try
{
if(set != null)
{
set.close();
}

if(st != null)
{
st.close();
}

if(con != null)
{
con.close();
}
}
catch(Exception e)
{
System.out.println(e);
}
}

public void selectStudentByStudentId(String studentId) throws Exception
{
getConnection();
st = con.prepareStatement(sql1);
st.setString(1, studentId);
set = st.executeQuery();
while(set.next())
{
System.out.println(set.getString(1));
}

close();
}

public String[][] selectStudentByClassId(String classId) throws Exception
{
getConnection();
st = con.prepareStatement(sql2, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
st.setString(1, classId);
set = st.executeQuery();
set.last();

int maxRowNum = set.getRow();
String[][] array = new String[maxRowNum][5];
int row = 0;


int i = 0;

set.beforeFirst();
while(set.next())
{
for(i = 1; i <= 5; i++)
{
array[row][i - 1] = set.getString(i);
System.out.println(array[row][i - 1]);
}

row++;
}

close();

return array;
}

public void selectSonNode(DefaultMutableTreeNode root) throws Exception
{
getConnection();

selectSonOrg(root, "100 ");

try
{
if(st != null)
{
st.close();
}

if(con != null)
{
con.close();
}
}
catch(Exception e)
{
System.out.println(e);
}
}

private void selectSonOrg(DefaultMutableTreeNode root, String id) throws Exception
{
String orgName = " ";


st = con.prepareStatement(sql4);
st.setString(1, id);
ResultSet set = st.executeQuery();

while(set.next())
{
id = set.getString(1);
orgName = set.getString(2);

DefaultMutableTreeNode node = new DefaultMutableTreeNode(orgName);
root.add(node);

System.out.println(node);

selectSonOrg(node, id);
}

set.close();
}

public DefaultMutableTreeNode getRootOrg() throws Exception
{
String id = " ";
String orgName = " ";
DefaultMutableTreeNode root = null;

getConnection();
st = con.prepareStatement(sql3);
set = st.executeQuery();
while(set.next())
{
id = set.getString(1);
orgName = set.getString(2);

root = new DefaultMutableTreeNode(orgName);
}

close();

return root;
}

private Connection con;
private PreparedStatement st;
private ResultSet set;
private List list;

public final String driverClass = "sun.jdbc.odbc.JdbcOdbcDriver ";
public final String URL = "jdbc:odbc:mydb ";
public final String userName = " ";
public final String password = " ";

public final String sql1 = "select id, name, sex, birthday, email from student where id = ? ";
public final String sql2 = "select id, name, sex, birthday, email from student where classid = ? ";
public final String sql3 = "select id, orgName, parent from org where parent is null ";
public final String sql4 = "select id, orgName, parent from org where parent = ? ";
}

热点排行