JSP实现增删改和一个回显的效果

张开发
2026/4/3 16:26:38 15 分钟阅读
JSP实现增删改和一个回显的效果
这是我的几个包和类我的Dao包代码展示DeptDao 接口 类中的图片代码展示DeptDaoImpl 实现接口类图片展示展示EmpDao 接口中的代码EmpDaoImpl 实现 EmpDao 接口 代码展示(双击可以查看复制使用)public class EmpDaoImpl extends BaseDao implements EmpDao{ JdbcTemplate jdbc new JdbcTemplate(ds); Override public ListEmp findAll() throws Exception { String sql select * from emp; return jdbc.query(sql , new BeanPropertyRowMapper(Emp.class)); } Override public ListEmp byGradeId(int deptNo) throws Exception { String sql select * from emp where deptNo ?; return jdbc.query(sql , new BeanPropertyRowMapper(Emp.class),deptNo); } Override public int del(int empNo) throws Exception { String sql delete from emp where empNo ?; return jdbc.update(sql , empNo); } Override public int checkEname(String name) throws Exception { String sql select count(1) from emp where ename ?; return jdbc.queryForObject(sql , Integer.class,name); } Override public int add(Emp e) throws Exception { String sql insert into emp (empNo,ename,job,mgr,hireDate,sal,deptNo) values (?,?,?,?,?,?,?); return jdbc.update(sql , e.getEmpNo(),e.getEname(),e.getJob(),e.getMgr(),e.getHireDate(),e.getSal(),e.getDeptNo()); } Override public Emp info(int empNo) throws Exception { String sql select * from emp where empNo ?; return jdbc.queryForObject(sql , new BeanPropertyRowMapper(Emp.class),empNo); } Override public int update(Emp e) throws Exception { String sql update emp set ename ?,job ?,mgr ?,sal ? ,deptNo ? where empNo ?; return jdbc.update(sql,e.getEname(),e.getJob(),e.getMgr(),e.getSal(),e.getDeptNo(),e.getEmpNo()); } Override public int checkEnameUpdate(String ename, int empNo) throws Exception { // 查询除了当前员工外是否还有其他员工使用这个姓名 String sql select count(1) from emp where ename ? and empNo ! ?; return jdbc.queryForObject(sql, Integer.class, ename, empNo); } }我的实体类代码展示部门表 Dept 实体类 代码import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; Data //无参 NoArgsConstructor //有参 AllArgsConstructor public class Dept { private Integer deptNo; private String dname; private String loction; }员工表 Emp实体类 代码package com.cjb.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; Data //无参 NoArgsConstructor //有参 AllArgsConstructor public class Emp { private Integer empNo; private String ename; private String job; private Integer mgr; private String hireDate; private double sal; private Integer deptNo; }We包代码展示DeptServletEmpServletpackage com.cjb.web; import com.alibaba.fastjson.JSONObject; import com.cjb.dao.EmpDao; import com.cjb.dao.EmpDaoImpl; import com.cjb.entity.Emp; import com.cjb.entity.Student; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; WebServlet(/e) public class EmpServlet extends HttpServlet { Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding(utf-8); //编译 resp.setContentType(text/html;charsetUTF-8); PrintWriter out resp.getWriter(); //输入对象 String opr req.getParameter(opr); //标识化 EmpDao sd new EmpDaoImpl(); //实例化对象 if (find.equals(opr)){ //查询 String deptNo req.getParameter(deptNo); ListEmp list null; if (deptNo null || 0.equals(deptNo)){ try { list sd.findAll(); //查询全部 } catch (Exception e) { throw new RuntimeException(e); } }else { try{ list sd.byGradeId(Integer.parseInt(deptNo)); } catch (Exception e) { throw new RuntimeException(e); } } String s JSONObject.toJSONString(list); out.print(s); out.flush(); //提交缓存 }else if(del.equals(opr)) { //执行删除 String empNo req.getParameter(empNo); try{ int count sd.del(Integer.parseInt(empNo)); out.print(count 0); out.flush(); } catch (Exception e) { throw new RuntimeException(e); } }else if (checkEname.equals(opr)){ //检查电话是否重复 String uname req.getParameter(uname); //获取身份证号 try{ int i sd.checkEname(uname); out.print(i 0); //true代表重复 false 代表正常使用 out.flush(); } catch (Exception e) { throw new RuntimeException(e); } }else if (add.equals(opr)) { //执行新增 String empNo req.getParameter(empNo); String ename req.getParameter(ename); String job req.getParameter(job); String mgr req.getParameter(mgr); String hireDate req.getParameter(hireDate); String sal req.getParameter(sal); String deptNo req.getParameter(deptNo); //封装到对象 Emp s new Emp(Integer.parseInt(empNo),ename,job,Integer.parseInt(mgr),hireDate,Double.parseDouble(sal),Integer.parseInt(deptNo)); //构造对象 //执行新增 try{ int count sd.add(s); //执行新增 if (count 0) { out.print(scriptalert(使用同步新增成功);location.hrefzy03.jsp;/script); } else { out.print(scriptalert(使用同步新增失败);location.hrefaddEmp.jsp;/script); } } catch (Exception e) { throw new RuntimeException(e); } }else if (addAjax.equals(opr)) { //执行新增 String empNo req.getParameter(empNo); String ename req.getParameter(ename); String job req.getParameter(job); String mgr req.getParameter(mgr); String hireDate req.getParameter(hireDate); String sal req.getParameter(sal); String deptNo req.getParameter(deptNo); //封装到对象 Emp s new Emp(Integer.parseInt(empNo),ename,job,Integer.parseInt(mgr),hireDate,Double.parseDouble(sal),Integer.parseInt(deptNo)); //构造对象 //执行新增 try{ int count sd.add(s); //执行新增 out.print(count 0); out.flush(); } catch (Exception e) { throw new RuntimeException(e); } }else if (info.equals(opr)) { //执行回显功能 String empNo req.getParameter(empNo); //获取内容 try{ Emp e sd.info(Integer.parseInt(empNo)); req.setAttribute(e ,e); //存储数据 req.getRequestDispatcher(empupdate.jsp).forward(req,resp); } catch (Exception e) { throw new RuntimeException(e); } }else if (checkEnameUpdate.equals(opr)){ //获取部门编号、员工姓名 String empNo req.getParameter(empNo); String ename req.getParameter(ename); try{ int i sd.checkEnameUpdate(ename , Integer.parseInt(empNo)); out.print(i 0); out.flush(); } catch (Exception e) { throw new RuntimeException(e); } }else if (update.equals(opr)) { //获取和一系列的参数 //执行新增 String empNo req.getParameter(empNo); String ename req.getParameter(ename); String job req.getParameter(job); String mgr req.getParameter(mgr); String hireDate req.getParameter(hireDate); String sal req.getParameter(sal); String deptNo req.getParameter(deptNo); //封装到对象 Emp s new Emp(Integer.parseInt(empNo),ename,job,Integer.parseInt(mgr),null,Double.parseDouble(sal),Integer.parseInt(deptNo)); //构造对象 try { int count sd.update(s); //执行修改 if(count0){ out.print(scriptalert(使用同步的方式修改成功);location.hrefzy03.jsp/script); }else{ out.print(scriptalert(使用同步的方式修改失败);location.hrefempupdate.jsp/script); } } catch (Exception e) { throw new RuntimeException(e); } } } }JSP代码展示查看所有数据板块% page contentTypetext/html;charsetUTF-8 languagejava % html head title部门查询/title script srcjs/jquery-1.12.2.js/script style *{ margin: 0px auto; text-align: center; } /style script $(function () { $(tr:even).css(background-color,pink); }) /script /head body div 部门名称select namedeptNo iddeptNo/select button onclickfindByGrade()查询/button button onclickxz()新增/button /div table idmyT border1 cellspacing0 /table script function xz() { location.href addEmp.jsp; } //工厂函数 $(function(){ $.getJSON(/d?oprall,function(d){ var e $(#deptNo); e.append(option value0请选择/option); //遍历JSON集合 $.each(d,function(index,v){ e.append(option value v.deptNov.dname/option); }); }); }) function findByGrade() { var deptNo $(#deptNo).val(); //获取部门编号 $.getJSON(/e?oprfinddeptNodeptNo,function (d) { //d为返回的JSON集合 var myT $(#myT); myT.empty(); //清空表格 myT.append(tr th员工号/thth员工名/thth工作职位/th th上级领导/thth入职时间/thth工资/th th所属部门号/thth操作/th /tr); //遍历JSON集合 v集合中的对象 $.each(d,function(index,v){ myT.append(trtdv.empNo/td tdv.ename/tdtdv.job/td tdv.mgr/tdtdv.hireDate/td tdv.sal/tdtdv.deptNo/td tda href# onclickdel(this,v.empNo)删除/a a href# onclickupdate(v.empNo)修改/a/td /tr); }); }); } function del(obj,empNo) { if (confirm(确认删除码)){ $.getJSON(/e?oprdelempNoempNo,function (d) { if (d){ alert(删除成功); $(obj).parent().parent().remove(); //静态删除 }else{ alert(删除失败); } }) } } function update(empNo) { location.href /e?oprinfoempNo empNo; } /script /body /html新增员工表JSP代码% page contentTypetext/html;charsetUTF-8 languagejava % html head title新增员工表/title script srcjs/jquery-1.12.2.js/script /head body form action/e?opradd methodpost p员工编号 input typetext nameempNo /p p员工名 input typetext nameename onblurcheckEname(this) span/span /p p工作职位: input typetext namejob /p p上级领导: input typetext namemgr /p p入职时间: input typetext namehireDate /p p工资: input typetext namesal /p p所属部门号: select namedeptNo iddeptNo/select /p pinput typesubmit/p /form script //下拉列表 $(function () { $.getJSON(/d?oprall,function(d){ var e $(#deptNo); e.append(option value0请选择/option); //遍历JSON集合 $.each(d,function(index,v){ e.append(option value v.deptNov.dname/option); }); }); }) //查看名字是否重复 function checkEname(obj) { var uname $(obj).val(); //获取电话 //判断空值 if(unamenull || uname){ $(obj).next().text(员工名为空); $(obj).next().css(color,red); $(input[typesubmit]).attr(disabled,disabled); return; } $.getJSON(/e?oprcheckEnameunameuname,function (d) { if (d){ //电话重复 $(obj).next().text(员工名重复); $(obj).next().css(color,red); $(input[typesubmit]).removeAttr(disabled,disabled); }else{ //电话可以正常使用 $(obj).next().text(员工名正常使用); $(obj).next().css(color,green); $(input[typesubmit]).removeAttr(disabled); } }) } //异步 $(function () { // 表单提交事件 $(form).submit(function (e) { // 阻止默认表单提交 e.preventDefault(); //获取值 var deptNo $(#deptNo).val(); if (deptNo 0 || deptNo null){ alert(请选择部门编号); return; } // 使用手动ajax请求提交数据 var formData $(this).serialize(); $.post(/e?opraddAjax, formData, function (data) { if (data) { alert(异步新增成功); location.href zy03.jsp; } else { alert(异步新增失败); } },json); }); }); /script /body /html修改JSP板块% page contentTypetext/html;charsetUTF-8 languagejava % html head title修改部门表/title script srcjs/jquery-1.12.2.js/script /head body form action/e?oprupdate methodpost p员工号 input typetext nameempNo value${e.empNo} readonly /p p员工名 input typetext nameename value${e.ename} onblurcheckEname(this,${e.empNo}) span/span /p p工作职位 input typetext namejob value${e.job} /p p上级领导 input typetext namemgr value${e.mgr} /p p工资 input typetext namesal value${e.sal} /p p所属部门 select namedeptNo iddeptNo/select /p p input typesubmit value修改 /p /form script //工厂函数 $(function(){ $.getJSON(/d?oprall,function(d){ var e $(#deptNo); e.append(option value0请选择/option); //遍历JSON集合 $.each(d,function(index,v){ e.append(option value v.deptNov.dname/option); }); // 回填部门编号 - 安全处理 var deptNo ${e.deptNo}; if (deptNo deptNo ! deptNo ! null) { $(#deptNo option[value deptNo ]).prop(selected, true); } }); }) function checkEname(obj,empNo) { var ename $(obj).val(); if(enamenull || ename){ $(obj).next().text(名称为空); $(obj).next().css(color,red); $(input[typesubmit]).attr(disabled,disabled); return; } $.getJSON(/e?oprcheckEnameUpdateenameename empNoempNo,function(d){ if(d){ $(obj).next().text(名称重复); $(obj).next().css(color,red); $(input[typesubmit]).attr(disabled,disabled); }else{ $(obj).next().text(名称正常使用); $(obj).next().css(color,green); $(input[typesubmit]).removeAttr(disabled); } }) } /script /body /html结论提示只介于参考和观看

更多文章