Java全栈开发---Java ERP系统开发:商业ERP(四)通用工具类的抽取

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

(2)删除IDepBiz当中的方法,继承上面创建好的接口

package com.itzheng.erp.biz;

import com.itzheng.erp.entity.Dep;

/*

  • 部门业务接口

*/

public interface IDepBiz extends IBaseBiz {

}

(3)创建BaseBiz实现类,将DepBiz(替换DepDao为BaseDao,depDao替换成baseDao,将Dep改写为T,将dep改写为t)

package com.itzheng.erp.biz.impl;

import java.util.List;

import com.itzheng.erp.biz.IBaseBiz;

import com.itzheng.erp.dao.IBaseDao;

import com.itzheng.erp.entity.Dep;

public class BaseBiz implements IBaseBiz {

/*

  • 数据访问层的调用

*/

private IBaseDao baseDao;

public void setBaseDao(IBaseDao baseDao) {

this.baseDao = baseDao;

}

@Override

public List getList() {

// TODO Auto-generated method stub

return baseDao.getList();

}

@Override

public List getList(T t1, T t2, Object param, int firstResult, int maxResults) {

return baseDao.getList(t1, t2, param, firstResult, maxResults);

}

@Override

public long getCount(T t1, T t2, Object param) {

return baseDao.getCount(t1, t2, param);

}

@Override

public void add(T t) {

System.out.println(t);

baseDao.add(t);

}

@Override

public void delete(Long uuid) {

// TODO Auto-generated method stub

baseDao.delete(uuid);

}

@Override

public T get(Long uuid) {

return baseDao.get(uuid);

}

@Override

public void update(T t) {

baseDao.update(t);

}

}

(4)在DepBiz当中继承BaseBiz实现IDepBiz

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 extends BaseBiz implements IDepBiz {

/*

  • 数据访问层的调用

*/

private IDepDao depDao;

public void setDepDao(IDepDao depDao) {

this.depDao = depDao;

super.setBaseDao(this.depDao);

}

}

4、抽取通用Action
(1)在erp_web当中创建,创建BaseAction

在这里插入图片描述

(2)将DepAction当中的所有方法都复制过来,替换DepBiz为BaseBiz,depBiz为baseBiz,替换Dep为T替换dep 为t

package com.itzheng.erp.action;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.alibaba.fastjson.JSON;

import com.itzheng.erp.biz.IBaseBiz;

public class BaseAction {

private IBaseBiz baseBiz;

public void setBaseBiz(IBaseBiz baseBiz) {

this.baseBiz = baseBiz;

}

// 属性驱动:条件查询

private T t1;

private T t2;

private Object param;

public Object getParam() {

return param;

}

public void setParam(Object param) {

this.param = param;

}

public T getT2() {

return t2;

}

public void setT2(T t2) {

this.t2 = t2;

}

public T getT1() {

return t1;

}

public void setT1(T t1) {

this.t1 = t1;

}

private int page;// 页码

private int rows;// 每页的记录数

public int getPage() {

return page;

}

public void setPage(int page) {

this.page = page;

}

public int getRows() {

return rows;

}

public void setRows(int rows) {

this.rows = rows;

}

// 条件查询

public void getList() {

System.out.println(“页码:” + page + “记录数:” + rows);

int firstResult = (page - 1) * rows;

List list = baseBiz.getList(t1, t2, param, firstResult, rows);

long total = baseBiz.getCount(t1, t2, param);// 查询数据的条数

// 把部门列表转换为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);

}

/*

  • 查询所有部门

*/

public void list() {

/*

  • 调用业务部门的业务,查询所有部门信息

*/

List list = baseBiz.getList();

// 把部门列表转换为JSON字符串

String listString = JSON.toJSONString(list);

write(listString);

}

/*

  • 新增的修改

*/

private T t;

public T getT() {

return t;

}

public void setT(T t) {

this.t = t;

}

public void add() {

// {“success”:true,“message”:“”}

// 返回前端的JSON数据

System.out.println(t + “------------------------------------”);

Map<String, Object> rtn = new HashMap<String, Object>();

try {

baseBiz.add(t);

rtn.put(“success”, true);

rtn.put(“message”, “新增成功”);

} catch (Exception e) {

e.printStackTrace();

rtn.put(“success”, false);

rtn.put(“message”, “新增失败”);

}

// 向集合当中添加一部分数据,然后将map集合转换为JSON数据输出到页面上

write(JSON.toJSONString(rtn));

}

/*

  • 删除

*/

private long id;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

/**

  • 删除

  • @param jsonString

*/

public void delete() {

try {

baseBiz.delete(id);

ajaxReturn(true, “删除成功”);

} catch (Exception e) {

e.printStackTrace();

ajaxReturn(false, “删除失败”);

}

}

/*

  • 通过编号查询对象

*/

public void get() {

T t = baseBiz.get(id);

String jsonString = JSON.toJSONString(t);

System.out.println(“转换前:” + jsonString);

// 将JSON数据转换为MAP对象

// 转换为map对象

String jsonStringAfter = mapData(jsonString, “t”);

System.out.println(“转换后:” + jsonStringAfter);

write(jsonStringAfter);

}

/*

  • 修改

*/

public void update() {

try {

ajaxReturn(true, “更新成功”);

baseBiz.update(t);

} catch (Exception e) {

// TODO: handle exception

ajaxReturn(false, “更新失败”);

e.printStackTrace();

}

}

// 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);

}

public void ajaxReturn(boolean success, String message) {

// 返回前端的JSON数据

Map<String, Object> rtn = new HashMap<String, Object>();

rtn.put(“success”, success);

rtn.put(“message”, message);

write(JSON.toJSONString(rtn));

}

public void write(String jsonString) {

try {

// 响应对象

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType(“text/html;charset=utf-8”);

// 输出给页面

response.getWriter().write(jsonString);

System.out.println(jsonString);

} catch (IOException e) {

e.printStackTrace();

}

}

}

(3)改造DepAction

package com.itzheng.erp.action;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

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 extends BaseAction {

private IDepBiz depBiz;

public void setDepBiz(IDepBiz depBiz) {

this.depBiz = depBiz;

super.setBaseBiz(this.depBiz);

}

}

5、抽取前端的(js代码封装)

在webapp下新建立一个js文件夹

在这里插入图片描述

在这里插入图片描述

在js文件夹下创建一个crud.js的文件

在这里插入图片描述

crud.js当中的内容,把dep.html里面的内容都复制到crud.js当中,将里面'dep替换为name+'_

//提交的方法

var method = “”;

$(function() {

$(‘#grid’).datagrid({

url : name + ‘_getList’,

columns : columns,

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 : name + ‘_’ + method,

data : formData,

dataType : ‘json’,

type : ‘post’,

success : function(rtn) {

$.messager.alert(“提示”, rtn.message, ‘info’, function() {

// 成功的话,我们要关闭窗口

$(‘#editDlg’).dialog(‘close’);

// 刷新表格数据

$(‘#grid’).datagrid(‘reload’);

});

}

});

});

});

/**

  • 删除部门

*/

function del(uuid) {

$.messager.confirm(“确认”, “确认要删除吗?”, function(yes) {

if (yes) {

$.ajax({

url : name + ‘_delete?id=’ + uuid,

dataType : ‘json’,

type : ‘post’,

success : function(rtn) {

$.messager.alert(“提示”, rtn.message, ‘info’, function() {

// 刷新表格数据

$(‘#grid’).datagrid(‘reload’);

});

}

});

}

});

}

/**

  • 修改部门

*/

function edit(uuid) {

// 弹出窗口

$(‘#editDlg’).dialog(‘open’);

// 清空表单内容

$(‘#editForm’).form(‘clear’);

method = “update”;

// 加载数据

$(‘#editForm’).form(‘load’, name + ‘_get?id=’ + uuid);

}

dep.html里面先定义name=“dep”,colums=[];因为他们是具体某个实体类的私有内容

在这里插入图片描述

6、Dep.html修改
部门管理

href=“ui/themes/default/easyui.css”>

style=“padding-left: 4px; border-bottom: 0px;”>

最后

最后,强调几点:

  • 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
  • 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
  • 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。

面试答案

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
ipt:void(0)" οnclick="del(’

  • row.uuid + ‘)">删除’;

return oper;

} }

] ]

style=“padding-left: 4px; border-bottom: 0px;”>

最后

最后,强调几点:

  • 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
  • 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
  • 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。

面试答案

[外链图片转存中…(img-KyXsctCG-1714679066727)]

[外链图片转存中…(img-1dUwFRDQ-1714679066728)]

[外链图片转存中…(img-O6HmIhBE-1714679066728)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 16
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值