jdbc+jsp实现简单员工管理系统

作者:lxh5431 时间:2021-08-31 23:08:15 

简单的页面分析

在上一个文章简单的数据库连接测试,已经测试和数据库做简单的交互,也就是dao层的实现,接下来要说的却是action的简单实现,在ssh中有struts作为表示层和server的交换,而这里我不是说的是关于struts这里只是简单的运用jsp的代码书写来实现数据的传输,这也是最繁琐的步骤,但是这却让我们对底层的调用有一个简单的了解,这里是直接调用封装好的数据,交换和使用,首先要书写的是action的使用,用的最多的就是getParameter表单的提交了,这里在网络上提交一个表单吗,然后通过getParameter进行获取,然后通过enployeeDao中的方法进行增删改查,就能够进行基本的逻辑操作了。

代码实现


<%@page import="dao.EmployeeDao"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="entity.Employee"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<%
 //1、接收表单提交的参数
 String action = request.getParameter("action");

//3.调用EmployeeDao中addEmployee(Employee employee)完成员工添加
 EmployeeDao employeeDao = new EmployeeDao();
 if (action.equals("0") || action.equals("1")) {
  //添加 更新
  String empno = request.getParameter("empno");
  String ename = request.getParameter("ename");
  String sal = request.getParameter("sal");
  String hiredate = request.getParameter("hiredate");

//2.将数据封装至Employee对象中
  Employee employee = new Employee();
  employee.setEmpno(Integer.parseInt(empno));
  employee.setEname(ename);
  employee.setSal(Double.parseDouble(sal));
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  employee.setHiredate(sdf.parse(hiredate));

if (action.equals("0")) {
   //添加
   employeeDao.addEmployee(employee);
  } else {
   //更新
   employeeDao.updateEmployee(employee);
  }

} else if (action.equals("2")) {
  //删除
  String empno = request.getParameter("empno");
  employeeDao.deleteEmployee(empno);
 } else if (action.equals("3")) {
  //批量删除
  System.out.println("action="+action);

String[] chks=request.getParameterValues("chks");
  for(String chk:chks){
   System.out.println("chk="+chk);
  }

}

//4.画面跳转至employeeList.jsp 重定向
 response.sendRedirect("employeeList.jsp");
%>
</body>
</html>

然后我们进行简单的页面设计,运用了表格的形式进行设计,代码如下


<%@page import="java.util.List"%>
<%@page import="entity.Employee"%>
<%@page import="dao.EmployeeDao"%>
<%@page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
function checkAll() {

//1.获取chkAll的选中状态checked
 var chkAll = document.getElementById("chkAll");
 //alert(chkAll.checked);

//2、获取其他所有的checkbox
 var chks = document.getElementsByName("chks");
 for (var i = 0; i < chks.length; i++) {
  //3、将chkAll的选中状态于其他checkbox的选中状态同步
  chks[i].checked = chkAll.checked;
 }
}

function onDelete(empno){
 var result=confirm("Delete Employee?");
 if(result){
  window.location.href="employeeManageAction.jsp?action=2&empno=" rel="external nofollow" +empno;
 }
}

//function onDeleteBatch(){
 //判断是否有选中的checkbox

//有选中的场合
 //提示是否删除确认的信息
 //确认删除
 //提交表单
 //var action=document.getElementById("action");
 //action.value="3";

// document.frmlist.action="employeeManageAction.jsp"
 // document.frmlist.submit();
 //取消删除
 //不用处理

//无选中的场合
 //提示选中记录的信息

//}

</script>
</head>
<body>
<h3>Employee List Page</h3>

<form name="frmSearch" action="xxxxAction.jsp" method="post">
 ename:<input type="text" /> <input type="submit" name="btnSubmit"
  value="submit" />
</form>
<P>
<hr />

<a href="employeeManage.jsp?action=0" rel="external nofollow" >Add Employee</a>
<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" onclick="onDeleteBatch();">Delete
 Employee Batch</a>
<P>
 <%
  EmployeeDao emplyeeDao = new EmployeeDao();
  List<Employee> employees = emplyeeDao.getEmployees();
 %>

<%
  if (employees != null && employees.size() > 0) {
 %>

<form name="frmlist" action="" method="post">
 <input type="hidden" name="action" id="action" value="" />
 <table width="600px" border="1px">

<tr bgcolor="#009966">
   <td><input type="checkbox" id="chkAll" onclick="checkAll()" /></td>
   <td>empno</td>
   <td>ename</td>
   <td>sal</td>
   <td>hiredate</td>
   <td>action</td>
  </tr>

<%
   Employee employee = null;
    for (int i = 0; i < employees.size(); i++) {
     employee = employees.get(i);
  %>
  <tr>
   <td><input type="checkbox" id="chk<%=i + 1%>" name="chks"
    value="<%=employee.getEmpno()%>" /></td>
   <td><%=employee.getEmpno()%></td>
   <td><%=employee.getEname()%></td>
   <td><%=employee.getSal()%></td>
   <td><%=employee.getHiredate()%></td>
   <td><a
    href="employeeManage.jsp?action=1&empno=<%=employee.getEmpno()%>" rel="external nofollow" >update</a>
    <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow"
    onclick="onDelete(<%=employee.getEmpno()%>);">delete</a></td>
  </tr>
  <%
   }
  %>
 </table>

</form>

<%
 }
%>
</body>
</html>

接下来要说的是更新操作


<%@page import="entity.Employee"%>
<%@page import="dao.EmployeeDao"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
function checkForm() {

var empno = document.getElementById("empno");
 if (empno && empno.value == "") {
  empno.focus();
  alert("please input empno");
  return;
 }

var ename = document.getElementById("ename");
 if (ename && ename.value == "") {
  ename.focus();
  alert("please input ename");
  return;
 }

var sal = document.getElementById("sal");
 if (sal && sal.value == "") {
  sal.focus();
  alert("please input sal");
  return;
 }

var hiredate = document.getElementById("hiredate");
 if (hiredate && hiredate.value == "") {
  hiredate.focus();
  alert("please input hiredate");
  return;
 }

var frm = document.getElementById("frm");
 frm.submit();

}
</script>

</head>
<body>

<%
 String action=request.getParameter("action");

Employee employee=null;
 if(action.equals("1")){
  //更新操作
  String empno = request.getParameter("empno");

EmployeeDao employeeDao = new EmployeeDao();
  employee=employeeDao.getEmployeeByEmpno(empno);
 }

%>

<h3>Employee <%=action.equals("1")?"Update":"Regist" %> Page</h3>

<form id="frm" action="employeeManageAction.jsp" method="post"
 onsubmit="return checkForm();">
 <input type="hidden" name="action" value="<%=action%>"/>
 <table>
  <tr>
   <td>empno</td>
   <td><input type="text" id="empno" name="empno" <%=action.equals("1")?"readOnly":"" %> value="<%=employee==null?"":employee.getEmpno()%>"/></td>
  </tr>

<tr>
   <td>ename</td>
   <td><input type="text" id="ename" name="ename" value="<%=employee==null?"":employee.getEname()%>"/></td>
  </tr>

<tr>
   <td>sal</td>
   <td><input type="text" id="sal" name="sal" value="<%=employee==null?"":employee.getSal()%>"/></td>
  </tr>

<tr>
   <td>hiredate</td>
   <td><input type="text" id="hiredate" name="hiredate" value="<%=employee==null?"":employee.getHiredate()%>"/></td>
  </tr>

<tr>
   <td><input type="button" name="btnSubmit" value="submit"
    onclick="checkForm();" /></td>
   <td><input type="reset" name="btnReset" value="reset" /></td>
  </tr>
 </table>
</form>
</body>
</html>

在这个过程中刚好用到了简单的js对数据进行非空和数据类型判断,这就是我们需要学会的逻辑,业务层,然后进行其他操作,当然我注释的是还没完成的多个删除和模糊搜索,这个下一个博客再去完善。

总结

在学习这个过程中,学会了更多关于数据调用的知识,而不是像hibernate那样在配置文件配置,然后直接调用就可以了,再用jsp中也发现jsp嵌入代码,更加笨重,这也是我学习的另一个方面吧。

更多学习资料请关注专题《管理系统开发》。

来源:https://blog.csdn.net/lxh5431/article/details/52489972

标签:jdbc,jsp,管理系统
0
投稿

猜你喜欢

  • java锁synchronized面试常问总结

    2023-08-01 05:11:37
  • IntelliJ IDEA中查看当前类的所有继承关系图

    2023-08-06 12:40:19
  • 小米Java程序员第二轮面试10个问题 你是否会被刷掉?

    2023-11-13 09:00:29
  • Java编程实现非对称加密的方法详解

    2023-08-24 01:21:26
  • spring mvc 实现获取后端传递的值操作示例

    2023-08-10 12:55:52
  • SpringBoot redis分布式缓存实现过程解析

    2023-10-10 22:32:25
  • Java中的interrupted()和isInterrupted()

    2023-06-17 22:16:31
  • 详解spring boot引入外部jar包的坑

    2021-07-29 10:49:49
  • Mybatis plus多租户方案的实战踩坑记录

    2023-08-01 05:19:09
  • web.xml SpringBoot打包可执行Jar运行SpringMVC加载流程

    2023-11-24 07:40:52
  • 关于java入门与java开发环境配置详细教程

    2023-11-24 14:21:44
  • java实现摄像头截图功能

    2023-12-01 19:53:22
  • 如何修改FeginCilent定义的服务名到指定服务

    2022-07-05 05:49:05
  • Java 如何调用long的最大值和最小值

    2021-07-24 02:27:18
  • Android Studio多渠道打包的配置方法

    2023-06-15 23:19:48
  • SpringBoot详细讲解静态资源导入的实现

    2023-07-26 13:23:21
  • 解决spring boot启动扫描不到自定义注解的问题

    2023-10-29 14:31:48
  • Android实现双曲线折线图

    2023-07-29 15:07:28
  • 关于springboot配置文件密文解密方式

    2023-11-09 04:21:24
  • Java调用CXF WebService接口的两种方式实例

    2023-11-09 02:25:11
  • asp之家 软件编程 m.aspxhome.com