Java全栈开发---Java ERP系统开发:商业ERP(三)部门管理(增删改查)

九、条件查询

(一)条件查询分析:动态组合条件查询

1、伪代码分析
if(如果输入部门名称){
    
    
	过滤部门名称
}
if(如果输入部门电话){
    
    
	过滤部门电话
}

动态组合条件查询。表格上有查询表单,输入部门名称,部门电话进行条件查询,如果同时输入条件侧全部进行查询

HQL编写伪代码
在这里插入图片描述

在这里插入图片描述

(二)后端代码的编写

1、在erp_dao下的IDepDao当中创建接口

在这里插入图片描述

package com.itzheng.erp.dao;
import java.util.List;
import com.itzheng.erp.entity.Dep;
public interface IDepDao {
    
    
	public List<Dep> getList();
	List<Dep> getList(Dep dep1);
}
2、在DepDao实现类当中
package com.itzheng.erp.dao.impl;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import com.itzheng.erp.dao.IDepDao;
import com.itzheng.erp.entity.Dep;
/*
 * 部门的数据访问权限
 */
public class DepDao extends HibernateDaoSupport implements IDepDao {
    
    
	/*
	 * 查询出所有的部门信息
	 */
	@Override
	public List<Dep> getList() {
    
    
		return (List<Dep>) this.getHibernateTemplate().find("from Dep");
	}
	/*
	 * 条件查询
	 */
	@Override
	public List<Dep> getList(Dep dep1) {
    
    
		DetachedCriteria dc = DetachedCriteria.forClass(Dep.class);// 条件,如果满足下面的判断就,添加相应的条件
		if (null != dep1) {
    
    // 判断传入Dep的条件是否为空
			// 是否输入部门名称
			if (null != dep1.getName() && dep1.getName().trim().length() > 0) {
    
    // 判断名称不为空的情况下
				// MatchMode.ANYWHERE => % %
				// MatchMode.END => %name
				// MatchMode.START => name%
				// 如果输入了部门名称
				dc.add(Restrictions.like("name", dep1.getName(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		// 是否输入了部门的电话
		if (null != dep1) {
    
    
			// 是否输入部门名称
			if (null != dep1.getTele() && dep1.getTele().trim().length() > 0) {
    
    // 不为空的情况下
				dc.add(Restrictions.like("tele", dep1.getTele(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		return (List<Dep>) this.getHibernateTemplate().findByCriteria(dc);// 添加条件之后再进行查询
	}
}
3、在erp_biz下的IDepBiz当中创建接口
package com.itzheng.erp.biz;
import java.util.List;
import com.itzheng.erp.entity.Dep;
/*
 * 部门业务接口
 */
public interface IDepBiz {
    
    
	/*
	 * 查询所有部门列表
	 */
	List<Dep> getList();
	/*
	 * 条件查询
	 */
	List<Dep> getList(Dep dep1);
}

在这里插入图片描述

4、DepBiz当中实现对应的接口的内容

在这里插入图片描述

package com.itzheng.erp.biz.impl;
import java.util.List;
import com.itzheng.erp.biz.IDepBiz;
import com.itzheng.erp.dao.IDepDao;
import com.itzheng.erp.entity.Dep;
/*
 * 部门业务实现
 */
public class DepBiz implements IDepBiz {
    
    
	/*
	 * 数据访问层的调用
	 */
	private IDepDao depDao;
	public void setDepDao(IDepDao depDao) {
    
    
		this.depDao = depDao;
	}
	@Override
	public List<Dep> getList() {
    
    
		// TODO Auto-generated method stub
		return depDao.getList();
	}
	@Override
	public List<Dep> getList(Dep dep1) {
    
    
		// TODO Auto-generated method stub
		return depDao.getList(dep1);
	}
}
5、在erp_web下的DeptAction当中

在这里插入图片描述

package com.itzheng.erp.action;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.alibaba.fastjson.JSON;
import com.itzheng.erp.biz.IDepBiz;
import com.itzheng.erp.entity.Dep;
/*
 * 部门Action
 */
public class DeptAction {
    
    
	private IDepBiz depBiz;
	public void setDepBiz(IDepBiz depBiz) {
    
    
		this.depBiz = depBiz;
	}
	// 属性驱动:条件查询
	private Dep dep1;
	public Dep getDep1() {
    
    
		return dep1;
	}
	public void setDep1(Dep dep1) {
    
    
		this.dep1 = dep1;
	}
	//条件查询
	public void getList() {
    
    
		List<Dep> list = depBiz.getList(dep1);
		// 把部门列表转换为JSON字符串
		String listString = JSON.toJSONString(list);
		try {
    
    
			// 响应对象
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setContentType("text/html;charset=utf-8");
			// 输出给页面
			response.getWriter().write(listString);
			System.out.println(listString);
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	/*
	 * 查询所有部门
	 */
	public void list() {
    
    
		/*
		 * 调用业务部门的业务,查询所有部门信息
		 */
		List<Dep> list = depBiz.getList();
		// 把部门列表转换为JSON字符串
		String listString = JSON.toJSONString(list);
		try {
    
    
			// 响应对象
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setContentType("text/html;charset=utf-8");
			// 输出给页面
			response.getWriter().write(listString);
			System.out.println(listString);
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
6、测试运行发现错误,编码格式有错误,需要在Maven当中自带的Tomcat当中设置编码格式

在这里插入图片描述

在这里插入图片描述
再次运行模糊查询匹配成功
在这里插入图片描述
在这里插入图片描述

(三)前端代码的编写

复制到ui文件下在这里插入图片描述

1、在webapp下的webapp下面的dep.html当中

在dep.html当中先引入上面的js然后编写前端代码
在这里插入图片描述
在这里插入图片描述

全部代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>部门管理</title>

<link rel="stylesheet" type="text/css"
	href="ui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="ui/themes/icon.css">
<script type="text/javascript" src="ui/jquery.min.js"></script>
<script type="text/javascript" src="ui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="ui/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="ui/jquery.serializejson.min.js"></script>
<script type="text/javascript">
	$(function() {
    
    

		$('#grid').datagrid({
    
    
			url : 'dep_getList',
			columns : [ [ {
    
    
				field : 'uuid',
				title : '部门编号',
				width : 100
			}, {
    
    
				field : 'name',
				title : '部门名称',
				width : 100
			}, {
    
    
				field : 'tele',
				title : '部门联系电话',
				width : 100,
				align : 'right'
			} ] ]
		});

		$('#btnSearch').bind('click', function() {
    
    
			//$('#searchForm').serializeJSON();把表单数据转换成为JSON对象
			var formData = $('#searchForm').serializeJSON();
			$('#grid').datagrid('loadData', formData);
		});
	});
</script>
</head>
<body>
	<div class="easyui-panel"
		style="padding-left: 4px; border-bottom: 0px;">
		<div style="height: 2px;"></div>
		<form id="searchForm">
			<table>
				<tr>
					<td>部门名称</td>
					<td><input name="dep1.name"></td>

					<td>部门电话</td>
					<td><input name="dep1.tele"></td>

					<td><button id="btnSearch" type="button">查询</button></td>
				</tr>
			</table>
		</form>
		<div style="height: 2px;"></div>
	</div>

	<table id="grid">


	</table>

</body>
</html>

2、运行测试

条件查询成功
在这里插入图片描述

十、分页查询

1、在erp_web下的 applicationContext_action.xml当中的修改为多例模式

在这里插入图片描述

2、在DeptAction当中设置接收页码和行数对应的值,生成set和get方法

在这里插入图片描述

3、修改dao层当中getList方法

在这里插入图片描述

4、修改dao接口

在这里插入图片描述

package com.itzheng.erp.dao;
import java.util.List;
import com.itzheng.erp.entity.Dep;
public interface IDepDao {
    
    
	public List<Dep> getList();
	/*
	 * 条件查询 查询所有部门信息
	 */
	List<Dep> getList(Dep dep1, int firstResult, int maxResults);
}

5、修改erp_biz当中对应的接口和实现类

package com.itzheng.erp.biz;
import java.util.List;
import com.itzheng.erp.entity.Dep;
/*
 * 部门业务接口
 */
public interface IDepBiz {
    
    
	/*
	 * 查询所有部门列表
	 */
	List<Dep> getList();
	/*
	 * 条件查询
	 */
	List<Dep> getList(Dep dep1, int firstResult, int maxResults);
}
package com.itzheng.erp.biz.impl;
import java.util.List;
import com.itzheng.erp.biz.IDepBiz;
import com.itzheng.erp.dao.IDepDao;
import com.itzheng.erp.entity.Dep;
/*
 * 部门业务实现
 */
public class DepBiz implements IDepBiz {
    
    
	/*
	 * 数据访问层的调用
	 */
	private IDepDao depDao;
	public void setDepDao(IDepDao depDao) {
    
    
		this.depDao = depDao;
	}
	@Override
	public List<Dep> getList() {
    
    
		// TODO Auto-generated method stub
		return depDao.getList();
	}
	@Override
	public List<Dep> getList(Dep dep1, int firstResult, int maxResults) {
    
    
		// TODO Auto-generated method stub
		return depDao.getList(dep1, firstResult, maxResults);
	}
}

6、修改DeptAction

在这里插入图片描述

7、修改IDepDao接口当中的内容

在这里插入图片描述

8、修改DepDao

@Override
public long getCount(Dep dep1) {
    
    
	/*
	* 记录条件查询的记录数
	*/
	DetachedCriteria dc = DetachedCriteria.forClass(Dep.class);// 条件,如果满足下面的判断就,添加相应的条件
	if (null != dep1) {
    
    // 判断传入Dep的条件是否为空
			// 是否输入部门名称
	if (null != dep1.getName() && dep1.getName().trim().length() > 0) {
    
    // 判断名称不为空的情况下
			// MatchMode.ANYWHERE => % %
			// MatchMode.END => %name
			// MatchMode.START => name%
			// 如果输入了部门名称
		dc.add(Restrictions.like("name", dep1.getName(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		// 是否输入了部门的电话
	if (null != dep1) {
    
    
			// 是否输入部门名称
		if (null != dep1.getTele() && dep1.getTele().trim().length() > 0) {
    
    // 不为空的情况下
		dc.add(Restrictions.like("tele", dep1.getTele(), MatchMode.ANYWHERE));// 通过模糊查询
		}
	}
	dc.setProjection(Projections.rowCount());
	return (long) getHibernateTemplate().findByCriteria(dc).get(0);
}

9、DepDao当中创建方法

@Override
	public long getCount(Dep dep1) {
    
    
		/*
		 * 记录条件查询的记录数
		 */
		DetachedCriteria dc = DetachedCriteria.forClass(Dep.class);// 条件,如果满足下面的判断就,添加相应的条件
		if (null != dep1) {
    
    // 判断传入Dep的条件是否为空
			// 是否输入部门名称
			if (null != dep1.getName() && dep1.getName().trim().length() > 0) {
    
    // 判断名称不为空的情况下
				// MatchMode.ANYWHERE => % %
				// MatchMode.END => %name
				// MatchMode.START => name%
				// 如果输入了部门名称
			dc.add(Restrictions.like("name", dep1.getName(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		// 是否输入了部门的电话
		if (null != dep1) {
    
    
			// 是否输入部门名称
			if (null != dep1.getTele() && dep1.getTele().trim().length() > 0) {
    
    // 不为空的情况下
				dc.add(Restrictions.like("tele", dep1.getTele(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		dc.setProjection(Projections.rowCount());
		List<Long> list = (List<Long>) getHibernateTemplate().findByCriteria(dc);
		return list.get(0);
	}

在这里插入图片描述

10、在erp_dao当中的DepDao当中创建接口

在这里插入图片描述

对应接口的实现类当中DepDao

@Override
	public long getCount(Dep dep1) {
    
    
		/*
		 * 记录条件查询的记录数
		 */
		DetachedCriteria dc = DetachedCriteria.forClass(Dep.class);// 条件,如果满足下面的判断就,添加相应的条件
		if (null != dep1) {
    
    // 判断传入Dep的条件是否为空
			// 是否输入部门名称
			if (null != dep1.getName() && dep1.getName().trim().length() > 0) {
    
    // 判断名称不为空的情况下
				// MatchMode.ANYWHERE => % %
				// MatchMode.END => %name
				// MatchMode.START => name%
				// 如果输入了部门名称
				dc.add(Restrictions.like("name", dep1.getName(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		// 是否输入了部门的电话
		if (null != dep1) {
    
    
			// 是否输入部门名称
			if (null != dep1.getTele() && dep1.getTele().trim().length() > 0) {
    
    // 不为空的情况下
				dc.add(Restrictions.like("tele", dep1.getTele(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		dc.setProjection(Projections.rowCount());
		List<Long> list = (List<Long>) getHibernateTemplate().findByCriteria(dc);
		return list.get(0);
	}

在这里插入图片描述

11、在DepBiz当中的(Dep dep1)

在这里插入图片描述

在这里插入图片描述

12、DepAction当中

在这里插入图片描述

	// 条件查询
	public void getList() {
    
    
		System.out.println("页码:" + page + "记录数:" + rows);
		int firstResult = (page - 1) * rows;
		List<Dep> list = depBiz.getList(dep1, firstResult, rows);
		long total = depBiz.getCount(dep1);// 查询数据的条数
		// 把部门列表转换为JSON字符串
		// {
    
    {total: total, rows:[]};}
		Map<String, Object> mapData = new HashMap<String,Object>();
		mapData.put("total", total);
		mapData.put("rows", list);
		String listString = JSON.toJSONString(mapData);
		write(listString);
	}

十一、查询的优化

1、创建一个方法返回值为DetachedCriteria(抽取公共方法)在DepDao当中

package com.itzheng.erp.dao.impl;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import com.itzheng.erp.dao.IDepDao;
import com.itzheng.erp.entity.Dep;
/*
 * 部门的数据访问权限
 */
public class DepDao extends HibernateDaoSupport implements IDepDao {
    
    
	/*
	 * 查询出所有的部门信息
	 */
	@Override
	public List<Dep> getList() {
    
    
		return (List<Dep>) this.getHibernateTemplate().find("from Dep");
	}
	/*
	 * 条件查询
	 */
	@Override
	public List<Dep> getList(Dep dep1, int firstResult, int maxResults) {
    
    
		DetachedCriteria dc = getDetachedCriteria(dep1);
		return (List<Dep>) this.getHibernateTemplate().findByCriteria(dc, firstResult, maxResults);// 添加条件之后再进行查询
	}
	@Override
	public long getCount(Dep dep1) {
    
    
		DetachedCriteria dc = getDetachedCriteria(dep1);
		dc.setProjection(Projections.rowCount());// 获取的是表中元素的个数
		List<Long> list = (List<Long>) getHibernateTemplate().findByCriteria(dc);
		return list.get(0);
	}
	private DetachedCriteria getDetachedCriteria(Dep dep1) {
    
    
		/*
		 * 记录条件查询的记录数
		 */
		DetachedCriteria dc = DetachedCriteria.forClass(Dep.class);// 条件,如果满足下面的判断就,添加相应的条件
		if (null != dep1) {
    
    // 判断传入Dep的条件是否为空
			// 是否输入部门名称
			if (null != dep1.getName() && dep1.getName().trim().length() > 0) {
    
    // 判断名称不为空的情况下
				// MatchMode.ANYWHERE => % %
				// MatchMode.END => %name
				// MatchMode.START => name%
				// 如果输入了部门名称
				dc.add(Restrictions.like("name", dep1.getName(), MatchMode.ANYWHERE));// 通过模糊查询
			}
			if (null != dep1.getTele() && dep1.getTele().trim().length() > 0) {
    
    // 不为空的情况下
				dc.add(Restrictions.like("tele", dep1.getTele(), MatchMode.ANYWHERE));// 通过模糊查询
			}
		}
		return dc;
	}
}

2、如果在页面上需要多添加一列内容的时候,直接在对应的方法上设置对应的内容,在DepDao当中

(1)先在实现类上

在这里插入图片描述

(2)在对应的接口上,在DepDao当中
package com.itzheng.erp.dao;
import java.util.List;
import com.itzheng.erp.entity.Dep;
public interface IDepDao {
    
    
	public List<Dep> getList();
	/*
	 * 条件查询 查询所有部门信息
	 */
	List<Dep> getList(Dep dep1, Dep dep2, Object param, int firstResult, int maxResults);
	long getCount(Dep dep1, Dep dep2, Object param);
}

3、在IDepBiz当中的(erp_biz当中)

(1)修改接口的方法
package com.itzheng.erp.biz;
import java.util.List;
import com.itzheng.erp.entity.Dep;
/*
 * 部门业务接口
 */
public interface IDepBiz {
    
    
	/*
	 * 查询所有部门列表
	 */
	List<Dep> getList();
	/*
	 * 条件查询
	 * 
	 */
	List<Dep> getList(Dep dep1, Dep dep2, Object param, int firstResult, int maxResults);
	public long getCount(Dep dep1, Dep dep2, Object param);
}
(2)修改对应的实现类DepBiz
package com.itzheng.erp.biz.impl;
import java.util.List;
import com.itzheng.erp.biz.IDepBiz;
import com.itzheng.erp.dao.IDepDao;
import com.itzheng.erp.entity.Dep;
/*
 * 部门业务实现
 */
public class DepBiz implements IDepBiz {
    
    
	/*
	 * 数据访问层的调用
	 */
	private IDepDao depDao;
	public void setDepDao(IDepDao depDao) {
    
    
		this.depDao = depDao;
	}
	@Override
	public List<Dep> getList() {
    
    
		// TODO Auto-generated method stub
		return depDao.getList();
	}
	@Override
	public List<Dep> getList(Dep dep1, Dep dep2, Object param, int firstResult, int maxResults) {
    
    
		return depDao.getList(dep1, dep2, param, firstResult, maxResults);
	}
	@Override
	public long getCount(Dep dep1, Dep dep2, Object param) {
    
    
		return depDao.getCount(dep1, dep2, param);
	}
}

4、在erp_web下的DepAction,当中创建两个查询属性、

并生成get和set方法
在这里插入图片描述
在这里插入图片描述

十二、实现增加部门功能,要求使用弹出窗口无刷新效果实现

1、 配置主键生成策略

(1)IDepDao

在这里插入图片描述

(2)在实现类当中

在这里插入图片描述

@Override
public void add(Dep dep) {
    
    
	this.getHibernateTemplate().save(dep);
}

2、 对应的映射文件:在erp_entity当中的Dep.hbm.xml

在这里插入图片描述

3、 在erp_biz当中的IDepBiz

在这里插入图片描述

void add(Dep dep);

4、 在erp_biz当中的DepBiz实现类当中,调用接口当中的add方法

在这里插入图片描述

5、 在DeptAction当中增加add方法

public void add() {
    
    
		// {"success":true,"message":""}
		Map<String, Object> rtn = new HashMap<String, Object>();
		try {
    
    
			depBiz.add(dep);
			rtn.put("success", true);
			rtn.put("message", "新增成功");

		} catch (Exception e) {
    
    
			e.printStackTrace();
			rtn.put("success", false);
			rtn.put("message", "新增失败");
		}
		write(JSON.toJSONString(rtn));
	}

十三、新增部门前端

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>部门管理</title>
<link rel="stylesheet" type="text/css" href="ui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="ui/themes/icon.css">
<script type="text/javascript" src="ui/jquery.min.js"></script>
<script type="text/javascript" src="ui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="ui/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="ui/jquery.serializejson.min.js"></script>
<script type="text/javascript">
var method = "";
$(function(){
    
    
	$('#grid').datagrid({
    
    //获取id为grid的内容
	    url:'dep_getList',//向action当中方式请求方法为dep_getList() 
	    columns:[[
	        {
    
    field:'uuid',title:'部门编号',width:100},    
	        {
    
    field:'name',title:'部门名称',width:100},    
	        {
    
    field:'tele',title:'部门联系电话',width:100,align:'right'}
	    ]],
	    singleSelect: true,
	    pagination: true,
	    toolbar: [{
    
    
	    	text: '新增',
			iconCls: 'icon-add',
			handler: function(){
    
    
				method = "add";
				$('#editDlg').dialog('open');
			}
		}]
	});
	$('#btnSearch').bind('click',function(){
    
    
		//把表单数据转换成json对象
		var formData = $('#searchForm').serializeJSON();
		//
		$('#grid').datagrid('load',formData);
	});
	$('#editDlg').dialog({
    
        
	    title: '部门编辑',    
	    width: 300,
	    height: 200,
	    closed: true,//窗口是是否为关闭状态, true:表示关闭    
	    modal: true//模式窗口
	});   
	$('#btnSave').bind('click',function(){
    
    //点击按钮的时候触发对应 方法
		var formData = $('#editForm').serializeJSON();//将
		$.ajax({
    
    
			url: 'dep_' + method,
			data: formData,
			dataType: 'json',
			type: 'post',
			success:function(rtn){
    
    
				$.messager.alert("提示",rtn.message,'info',function(){
    
    
					//成功的话,我们要关闭窗口
					$('#editDlg').dialog('close');
					//刷新表格数据
					$('#grid').datagrid('reload');
				});
			}
		});
	});
});
</script>
</head>
<body>
<div class="easyui-panel" style="padding-left:4px;border-bottom:0px;">
<div style="height:2px;"></div>
<form id="searchForm">
	<table>
		<tr>
			<td>部门名称</td>
			<td><input name="dep1.name"></td>
		</tr>
		<tr>
			<td>部门电话</td>
			<td><input name="dep1.tele"></td>
		</tr>
	</table>
	<button id="btnSearch" type="button">查询</button>
</form>
<div style="height:2px;"></div>
</div>
<table id="grid"></table>
<div id="editDlg">
	<form id="editForm">
		<table>
			<tr>
				<td>部门名称</td>
				<td><input name="dep.name"><input type="hidden" name="dep.uuid" /></td>
			</tr>
			<tr>
				<td>部门电话</td>
				<td><input name="dep.tele"></td>
			</tr>
		</table>
		<button id="btnSave" type="button">保存</button>
	</form>
</div>
</body>
</html>

在这里插入图片描述

在这里插入图片描述

十四、删除部门

1、删除部门的前端页面

在这里插入图片描述
在这里插入图片描述

2、删除部门的后端实现

(1) 在erp_dao当中的DepDao类当中设置删除方法

在这里插入图片描述

(2) 在erp_dao当中的IDepDao类当中设置删除方法

在这里插入图片描述

(3)在业务层当中的dao当中

在这里插入图片描述

(4)在业务层当中的dao当中的实现类当中

调用对应的dao层的delete方法
在这里插入图片描述

3、在DepAction当中,设置删除的方法

在这里插入图片描述

4、测试运行代码

在这里插入图片描述

在这里插入图片描述
删除成功
在这里插入图片描述

十五、修改部门

(一)实现加载修改数据

1、前端页面的实现(在erp_web下的dep.html)

在这里插入图片描述

2、在erp_dao的

(1)当中创建接口DepDao

在这里插入图片描述

(2)在对应的接口当中实现接口当中定义的get方法

在这里插入图片描述

3、在erp_biz当中

(1)实现对应的IDepBiz

在这里插入图片描述

(2)实现对应的IDepBiz接口

在这里插入图片描述

4、在DepAction当中:设置修改的方法,并设置对应字符串的转换方法

在这里插入图片描述
在这里插入图片描述

/*
	 * 通过编号查询对象
	 */
	public void get() {
    
    
		Dep dep = depBiz.get(id);
		String jsonString = JSON.toJSONString(dep);
		System.out.println("转换前:" + jsonString);
		// 将JSON数据转换为MAP对象
		// 转换为map对象
		String jsonStringAfter = mapData(jsonString, "dep");
		System.out.println("转换后:" + jsonStringAfter);
		write(jsonStringAfter);
	}

	// JSON 数据字符串
	// 要加上的前缀
	public String mapData(String jsonString, String prefix) {
    
    
		Map<String, Object> map = JSON.parseObject(jsonString);
		// 存储key加上前缀后的值
		Map<String, Object> dataMap = new HashMap<String, Object>();
		// 给每个key值加上前缀
		for (String key : map.keySet()) {
    
    
			dataMap.put(prefix + "." + key, map.get(key));
		}
		return JSON.toJSONString(dataMap);
	}

5、点击修改对应信息,将信息查询出来显示到弹框当中

在这里插入图片描述

(二)修改部门(也就是更新数据)

1、在IDepDao当中声明接口

在这里插入图片描述

2、在实现类当中实现对应的接口

在这里插入图片描述

3、在IDepBiz当中设置接口

在这里插入图片描述

4、对应的实现类调用对应的到层

在这里插入图片描述

5、在DepAction当中设置对应更新的方法

在这里插入图片描述

6、修改dep.html页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更新成功
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/108974875