ztree 增删修改---前期准备

前言

前段时间做毕业设计用到了目录树结构,所以顺便学习了Z-Tree这个插件,官网给的api很详细,但是全是前端上的操作,没有具体在服务器实现的实例,网上也是基本没有学习实例。于是自己就琢磨学习一番,本系列的主旨就是把z-tree应用到jsp和servlet中,方便以后的人学习使用。这个学习系列大概分为4个系列,

第一个系列就是下载所需的各种工具和包之类的,数据库的设计,把我们所用的所用材料准备好。

 

第二个系列就是目录树删除实现,不仅仅前端显示删除成功,同时数据库中也被删除掉。

 

第三个系列就是目录树修改实现,节点名称修改,同时数据库中也被修改。

第四个系列就是目录树的添加,效果如上。

开发环境

我用的是eclipse , mysql ,由于我用了servlet的注解功能,所以读者请注意使用servlet3.0以上版本,如果你不想用,那么就需要自行去web.xml配置你的servlet路径,这个你应该会的,我就不再赘述。

下载文件

z-Tree的实现是基于jq的,所以请到官网下载jq 库文件,同时去Z-tree官网下载所需要js文件和样式表。

这三个是必须的,将来要在jsp页面引入。

样式表如下

 

以上所需文件的下载地址:     链接:下载地址 密码:58i0

java  定义json 格式所需的包

ztree 增删修改---前期准备_第1张图片

数据库设计

我用到是mysql,简单起见,表就设置3个字段,id ,   parent_id,   province.

id是树节点的唯一标识(注意id设置成自动增长,方便添加),parent_id 则是指明父节点的id,插件我是在哪个节点的孩子。province 是我自己起的省份名字(不知道拼对了没),也就是节点的name

ztree 增删修改---前期准备_第2张图片

数据库连接采用JDBC

public class DbUtil {
	public static Connection getConnection()
	{
		Connection conn = null;
		try{
			//加载数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
			//获取和数据库的链接
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/practice?useUnicode=true&characterEncoding=utf-8","root","123456");
		}catch(Exception e){
			e.printStackTrace();
		}
		return conn;
	}
	
	public static void closeAll(Connection conn,PreparedStatement ps,ResultSet rs)
	{
		try{
			rs.close();
			ps.close();
			conn.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public static void closeAll(Connection conn,PreparedStatement ps)
	{
		try{
			ps.close();
			conn.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

 

代码结构

1.z-tree.jsp    起始页面,也是操作展示的页面。

2.city.java      city 实体类,城市类。

package util;

public class City {
	private Integer id;
	private Integer pId;
	private String  city;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getpId() {
		return pId;
	}
	public void setpId(Integer pId) {
		this.pId = pId;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	
}


3.CityDAO  city 接口

4.CityImpl   接口实现

5. TreeNode  节点类 仅仅为了定义返回给前台的格式定义

public class TreeNode {
	private Integer id;
	private Integer pId;
	private String  nodeName;
	private String icon = "";
	private Boolean isParent = true;    // 是否是双亲节点
	private Boolean checked = false;
	private List children = null;
	private Boolean open = false;       //是否展开
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getpId() {
		return pId;
	}
	public void setpId(Integer pId) {
		this.pId = pId;
	}
	public String getNodeName() {
		return nodeName;
	}
	public void setNodeName(String nodeName) {
		this.nodeName = nodeName;
	}
	public String getIcon() {
		return icon;
	}
	public void setIcon(String icon) {
		this.icon = icon;
	}
	public Boolean getIsParent() {
		return isParent;
	}
	public void setIsParent(Boolean isParent) {
		this.isParent = isParent;
	}
	public Boolean getChecked() {
		return checked;
	}
	public void setChecked(Boolean checked) {
		this.checked = checked;
	}
	public List getChildren() {
		return children;
	}
	public void setChildren(List children) {
		this.children = children;
	}
	public Boolean getOpen() {
		return open;
	}
	public void setOpen(Boolean open) {
		this.open = open;
	}
	
}

 

 

 

以上,就是基本的前期工作,接下来就让我们来实现 目录树最简单的删除实现

代码地址

https://github.com/SpecialYy/ztree-demo-practice

 

你可能感兴趣的:(Java,Web)