Create TableCREATE TABLE `basetree` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(100) DEFAULT NULL COMMENT '名称',
`parentId` int(255) DEFAULT '-1' COMMENT '父ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8
实际上是一个自引用
dao层代码:
public List<BaseTree> getBaseTree(BaseTree baseTree) throws Exception {
List<BaseTree> baseTreesList = sqlSession.selectList("constants.selectBaseTree", baseTree.getParentId());
return baseTreesList;
}
配置:
<select id="selectBaseTree" resultType="BaseTree" parameterType="int">
SELECT id, NAME, parentId FROM ms.basetree
where parentId = #{parentId}
</select>
bean:
public class BaseTree extends BaseBean {
private Integer parentId;
private List<BaseTree> baseTree;
public Integer getParentId() {
return parentId;
} public void setParentId(Integer parentId) {
this.parentId = parentId;
} public List<BaseTree> getBaseTree() {
return baseTree;
} public void setBaseTree(List<BaseTree> baseTree) {
this.baseTree = baseTree;
}
}
Service:
怎么写才能将二叉树保存到list中?展示层如何展示?Java 二叉树
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(100) DEFAULT NULL COMMENT '名称',
`parentId` int(255) DEFAULT '-1' COMMENT '父ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8
实际上是一个自引用
dao层代码:
public List<BaseTree> getBaseTree(BaseTree baseTree) throws Exception {
List<BaseTree> baseTreesList = sqlSession.selectList("constants.selectBaseTree", baseTree.getParentId());
return baseTreesList;
}
配置:
<select id="selectBaseTree" resultType="BaseTree" parameterType="int">
SELECT id, NAME, parentId FROM ms.basetree
where parentId = #{parentId}
</select>
bean:
public class BaseTree extends BaseBean {
private Integer parentId;
private List<BaseTree> baseTree;
public Integer getParentId() {
return parentId;
} public void setParentId(Integer parentId) {
this.parentId = parentId;
} public List<BaseTree> getBaseTree() {
return baseTree;
} public void setBaseTree(List<BaseTree> baseTree) {
this.baseTree = baseTree;
}
}
Service:
怎么写才能将二叉树保存到list中?展示层如何展示?Java 二叉树
解决方案 »
- 请教问题:取数组里重复和不重复元素
- List接口中的常用类的使用和方法?
- JavaMail的Transport.send(msg)或Transport.connect
- 个人感觉Java变得越来越复杂了
- 从源代码生成设计书的问题
- 我要学ejb做一个网上销售系统,但我只学了一点一般的java,不知道学ejb要装什么软件?
- resin里如何配置数据库连接池(比如MSSQL为例)?
- 当tomcat设为自动更新时,当更新程序后,session全部自动unbound的问题
- 有关于“Java中的文件操作”问题向各位请教!!!
- 80 分求o'relly的java&xml 2 Editor 下载!!!
- 求帮助!谢谢,帮忙找错误@!
- java中变量初始化问题
StringBuilder builder=new StringBuilder();
List<Map> list=subTreeList(id);
if(list.size()>0){
for (int i = 0; i < list.size(); i++) {
builder.append("<item text=\""+list.get(i).get("name")+"\" id=\""+list.get(i).get("id")+"\" open=\"1\">");
builder.append(recursion(list.get(i).get("id").toString()));
builder.append("</item>");
}
}
return builder.toString();
}
public String assemTree(String root){
List<Map> list=getTreeList(root);
StringBuilder builder=new StringBuilder();
builder.append("<?xml version='1.0' encoding='UTF-8'?>");
builder.append("<tree id=\"0\">");
builder.append("<item text=\""+list.get(0).get("name")+"\" id=\""+list.get(0).get("id")+"\" open=\"1\" call=\"1\" select=\"1\">");
builder.append(recursion(root));
builder.append("</item>");
builder.append("</tree>");
return builder.toString();
}
递归,之前的demo你可以参考下
String sql="select * from fl_perm where parent in (?) order by orderid asc";
List<Map> lm=jdbcTemplate.queryForList(sql,new Object[]{parent});
return lm;
}