最近,本人用梅花树写了一个动态的树结构,跟大家一起交流交流,代码如下:
Treedao.java
public class TreeDao extends HibernateEntityDao<Tree> {
ResultSet rp = null;
ResultSet rs = null;
ResultSet rt = null;
int ids = 0;
int pids = 0;
String sql = null;
public String getTree(String path, String tst) throws Exception {
System.out.println("开始构建树");
readCSV csv = new readCSV();
// tst="杭州";
Connection conn = csv.conn();
Statement stm = conn.createStatement();
if (tst.equals("所有用户组")) {
sql = "select * from tree";
} else {
sql = "select * from tree where txt='" + tst + "'";
}
ResultSet r = stm.executeQuery(sql);
String tre = null;
String tree = "tree";
String aa = "浙江教育资源网实名库";
String bb = "property";
int cc = 0;
int dd = 1;
tre += "\n" + tree + ".nodes[\"" + cc + "_" + dd + "\"]=\"";
tre += "text:" + aa + ";";
tre += "icon:" + bb + ";";
tre += "\"";
if (tst.equals("所有用户组")) {
int bob1 = 1;
int bob2 = 111;
String bobo = "教师日志管理";
String bo = "property";
String bp = "" + path + "logme.do?method=queryLog";
tre += "\n" + tree + ".nodes[\"" + bob1 + "_" + bob2 + "\"]=\"";
tre += "text:" + bobo + ";";
tre += "icon:" + bb + ";";
tre += "url:" + bp + ";";
tre += "\"";
}
while (r.next()) {
ids = Integer.parseInt(String.valueOf(r.getInt("id")));
pids = Integer.parseInt(String.valueOf(r.getInt("parentId")));
String txt = r.getString("txt");
String icon = r.getString("icon");
int data=Integer.parseInt(String.valueOf(r.getInt("data")));
String url = r.getString("url");
//int data=Integer.parseInt(r.getString("data"));
tre += "\n" + tree + ".nodes[\"" + pids + "_" + ids + "\"]=\"";
tre += "text:" + txt + ";";
tre += "icon:" + icon + ";";
if (url != null) {
tre += "url:" + path + "" + url
+ data+"";
}
tre += "\"";
tre += ";";
}
String sql2 = "select * from tree where parentId='" + ids + "'";
ResultSet rd = stm.executeQuery(sql2);
if (rd.next() == false) {
System.out.println("进入false");
Connection con = csv.conn();
Statement sta = con.createStatement();
rp = stm.executeQuery(sql);
while (rp.next()) {
pids = Integer.parseInt(String.valueOf(rp.getInt("parentId")));
}
String sql3 = "select * from tree where id='" + pids + "'";
rt = stm.executeQuery(sql3);
while (rt.next()) {
ids = Integer.parseInt(String.valueOf(rt.getInt("id")));
pids = Integer.parseInt(String.valueOf(rt.getInt("parentId")));
String txt = rt.getString("txt");
String icon = rt.getString("icon");
int data=Integer.parseInt(String.valueOf(rt.getInt("data")));
String url = rt.getString("url");
tre += "\n" + tree + ".nodes[\"" + pids + "_" + ids + "\"]=\"";
tre += "text:" + txt + ";";
tre += "icon:" + icon + ";";
if (url != null) {
tre += "url:" + path + "" + url
+ data + "";
}
tre += "\"";
tre += ";";
}
rs = stm.executeQuery(sql);
System.out.println("已经构建完毕");
} else {
rs = stm.executeQuery(sql2);
}
while (rs.next()) {
int id = Integer.parseInt(String.valueOf(rs.getInt("id")));
int pid = Integer.parseInt(String.valueOf(rs.getInt("parentId")));
String txt = rs.getString("txt");
String icon = rs.getString("icon");
int data=Integer.parseInt(String.valueOf(rs.getInt("data")));
String url = rs.getString("url");
tre += "\n" + tree + ".nodes[\"" + pid + "_" + id + "\"]=\"";
tre += "text:" + txt + ";";
tre += "icon:" + icon + ";";
if (url != null) {
tre += "url:" + path + "" + url
+ data+ "";
}
tre += "\"";
tre += ";";
}
System.out.println(tre);
return tre;
}
public String getAddress(String address) throws Exception{
String txt=null;
int adderss=Integer.parseInt(address);
readCSV csv = new readCSV();
Connection conn = csv.conn();
Statement stm = conn.createStatement();
String sql="select txt from tree where id="+adderss;
rs=stm.executeQuery(sql);
while(rs.next()){
txt=rs.getString("txt");
System.out.println("txt:"+txt);
}
return txt;
}
public int getID(String address)throws Exception{
int ids=0;
readCSV csv = new readCSV();
Connection conn = csv.conn();
Statement stm = conn.createStatement();
String sql="select id from tree where txt='"+address+"'";
rs=stm.executeQuery(sql);
while(rs.next()){
ids = Integer.parseInt(String.valueOf(rs.getInt("id")));;
}
return ids;
}
}
-----Test.jsp-----
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page contentType="text/html; charset=utf-8"%>
<%@page import="xxxxx.dao.TreeDao"%>//
//此处为url获取
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<script language="JavaScript" src="scripts/MzTreeView10.js"></script>
<style>
A.MzTreeview
{
font-size: 9pt;
padding-left: 3px;
}
a:link {
color: #003399;
text-decoration: none;
}
a:visited {
color: 003399;
text-decoration: none;
}
a:hover {
color: #FF6600;
text-decoration: none;
}
a:active {
color: 003399;
text-decoration: none;
}
</style>
<script language="JavaScript">
var tree = new MzTreeView("tree");
// alert(MzTreeView.getTreeNode(MzTreeView.selectedNodeIndex).getAttribute("text"));
tree.icons["property"] ="book.gif";
tree.icons["book"] = "book.gif";
tree.icons["css"] = "book.gif";
tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片
tree.iconsExpand["property"] = "bookopen.gif";
tree.iconsExpand["css"] = "bookopen.gif";
tree.setIconPath("images/MzTreeView/"); //可用相对路径
<%
TreeDao Tdao=new TreeDao();
String tst=request.getAttribute("tst").toString();
String tree=Tdao.getTree(basePath,tst);
out.print(tree);
%>
tree.setURL("#");
tree.setTarget("main");
document.write(tree.toString()); //亦可用 obj.innerHTML = tree.toString();
</script>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
</body>
</html>
请注意js树控件在下面附件中有下载
分享到:
相关推荐
在MySQL中,数据存储在表格中,表格之间可以建立关联,形成复杂的数据库结构。MySQL支持多种数据类型,如整数、浮点数、字符串、日期和时间等,可以根据实际需求选择合适的数据类型存储数据。 接下来,我们关注的是...
MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其工作流程涉及多个步骤,这些步骤在处理SQL语句时至关重要。以下是对这些步骤的详细说明: 首先,客户端通过连接器与MySQL服务器建立连接。连接器负责...
学生需要理解索引的类型(如B树索引、哈希索引)及其创建和管理,以及如何创建和使用试图。 通过这些实训内容,学生不仅能在实践中理解和掌握数据库理论,还能提升实际操作技能,更好地应对数据管理的需求,为未来...
1. 树形控件:显示服务器上的所有数据库及其包含的表,呈现清晰的树状结构,类似于SQL Server的界面。 2. 列表控件:展示表的详细信息,如结构和记录,同时用于显示SQL查询结果。 3. 查询编辑器:用于编写和执行SQL...
5. **索引与优化**:讨论索引的种类(如B树索引、哈希索引)及其对查询性能的影响,以及如何通过优化查询语句和创建合适索引来提升数据库效率。 6. **事务与并发控制**:介绍事务的ACID特性(原子性、一致性、隔离...
MySQL 树形结构查询是指使用存储过程来实现 MySQL 数据库中的树形结构查询。这种查询方式可以高效地查询树形结构的数据,并且可以根据需要设置递归深度。 MySQL 中的树形结构查询可以使用存储过程来实现,存储过程...
- **数据库URL**:填写MySQL的连接字符串,通常格式为`jdbc:mysql://<hostname>:<port>/<database>`,其中`<hostname>`是MySQL服务器地址,`<port>`是默认的3306,`<database>`是你想连接的数据库名。 - **驱动...
MySQL数据库基础实例教程是针对初学者的一套系统性学习资源,尤其适合想要了解数据库管理和开发的人群。本教程分为多个章节,涵盖了从基础到进阶的各个关键领域,旨在通过实例教学来帮助学习者深入理解MySQL的核心...
根据提供的信息,我们可以深入探讨关于“动态加载树结构实现方法”的相关知识点,特别是递归调用在树结构中的应用。 ### 动态加载树结构实现方法 #### 1. 树结构简介 树结构是一种非线性的数据结构,用于表示具有...
在本教程中,你将深入理解MySQL的基础概念,如数据库、表、字段和记录等,并学习如何创建、修改和删除这些数据库对象。 其次,任务驱动式学习方法强调通过实际任务来引导学习过程,使学生在解决问题的过程中掌握...
在本项目中,使用JSP(JavaServer Pages)技术进行前端页面渲染,结合MySQL数据库存储数据,实现动态加载和操作树形结构。 JSP是Java的一种服务器端脚本语言,用于生成动态Web内容。它允许开发人员在HTML页面中嵌入...
MYSQL数据库结构表
在IT领域,树状数据结构是一种非常重要的抽象概念,它广泛应用于各种场景,如文件系统、数据索引、网络路由等。多叉树是树结构的一种变体,每个节点可以有多个子节点,区别于二叉树(每个节点最多两个子节点)。在...
此外,还将深入探讨如何使用SQL语言进行数据操作,如创建数据库、表结构,插入、更新和删除数据,以及复杂的查询操作,如联接(JOIN)、子查询和集合函数。 MySQL的事务处理和并发控制也是关键部分。事务是数据库...
在这个项目中,“BS树形结构(jsp+mysql数据库+设计文档)”是利用Java Web技术,即JSP(JavaServer Pages)和Servlet,以及MySQL数据库来实现的Web应用。下面将详细阐述这个项目的知识点。 1. **B/S架构**:B/S...
在关系数据库中,物理结构涉及存储结构(如表格、B树、哈希表)和存取方法(如顺序扫描、索引查找)。例如,对于关系模式,需要决定哪些字段需要创建索引,是单一索引还是组合索引,以及是否需要设置唯一性约束。...
* 源数据库的数据类型转换后需要改变的情况,可以通过中间的树形结构图中修改。 * 对于源数据库的数据类型转换后需要改变的情况,可以批量修改。 * 对于需要转过去的库的内容,可以选择表结构、外键、索引、数据等等...
MySql数据库性能优化是指通过调整和优化数据库的各种参数、结构和查询语句,提高数据库的运行速度和效率,减少资源占用和系统瓶颈。下面将详细介绍MySql数据库性能优化的相关知识点。 什么是优化? 优化是指通过...
4.城乡划分代码说明:mysql数据库,树结构存储。包括:编码;名称;全称;所属省,市,区县,街道;拼音首字母;城市类型(直辖市,省会);同级下排序;深度;城乡分类代码及经纬度。 5.三级地址:...