目录
实现动态树
数据表结构:
实现无限极分类 父类的pid是子类的id
后端代码:
/**
* 根据父类id查询子类pid的数据(递归)
* @param pid
* @param mod
*/
public void queryModuleByPid(Integer pid,Module mod){
String sql="select id,pid,text,icon,url,sort from t_module_vue where"
+ " pid="+pid;
List<Module> lst=super.executeQuery(sql, null, new CallBack<Module>() {
@Override
public List<Module> forEach(ResultSet rs) throws SQLException {
List<Module> lst=new ArrayList<Module>();
Module node=null;
while(rs.next()) {
node=new Module();
int id=rs.getInt("id");
node.setId(id);
node.setPid(rs.getInt("pid"));
node.setText(rs.getString("text"));
node.setIcon(rs.getString("icon"));
node.setUrl(rs.getString("url"));
lst.add(node);
//此注释代表实现无限极分类,在此只实现了两级
//queryModuleByPid(id, root);
}
return lst;
}
});
mod.setChildren(lst);
}
/**
* 获取Tree根节点
* @return
*/
public List<Module> queryRootNode(){
String sql="select id,pid,text,icon,url,sort from t_module_vue where"
+ " pid=-1";
return super.executeQuery(sql, null, new CallBack<Module>() {
@Override
public List<Module> forEach(ResultSet rs) throws SQLException {
List<Module> lst=new ArrayList<Module>();
Module root=null;
while(rs.next()) {
root=new Module();
int id=rs.getInt("id");
root.setId(id);
root.setPid(rs.getInt("pid"));
root.setText(rs.getString("text"));
root.setIcon(rs