首页 >> 大全

课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管

2023-12-01 大全 24 作者:考证青年

文章目录

前言

这篇文章是大学课程《基础框架程序设计》考试题目的内容,包括了原题和答案。题目只包括了三道编程题,分值为30分、30分和40分,这篇文章继上一篇(课程《基础框架程序设计》考试题上篇——基础应用题(计算应用、水仙花数)),介绍40分的那题,以及代码编写中出现的报错和解决方法。

第三题(40分)

添加员工档案:添加员工档案包括两个 JSP 页面。其中 .jsp 页面负责显示添加界面,.jsp 负责添加新进员工档案信息到指定数据库。具体说明如下:

1)添加员工档案信息页面 .jsp(该页面已给出)运行界面如图2-1所示,其表单属性“=.jsp”,指定本页面的表单由.jsp负责处理。

2).jsp(该页面需要完成)负责获取 .jsp 页面表单元素值,将新进员工档案信息添加到指定数据库 hrms 当中。

提供的 .jsp 页面代码如下。

<%@ 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=utf-8">
<title>人事管理平台title>
<style type="text/css">
form td{border:1px solid #93CBEC;font-size:12px;height:30px;line-height:24px;
}
#resume{width:500px;height:80px;
}
style>
head>
<body><form action="searchEmployee2.jsp" method="post"><table border=0 cellspacing=0 cellpadding=0 width=750px><tr><td colspan=4 bgcolor="#f1f7fc"><strong>    查询员工档案信息strong>td>tr>	<tr><td width="150" align="center">员工编号:td><td colspan=4 	>    <input type="text" name="employeeid" id="employeeid" />td>tr><tr><td align="center">        名:td><td colspan=4>    <input type="text" name="username" id="username" />td>tr><tr><td align="center">        别:td><td>    <select name="sex" id="sex"><option value="">所有option><option value="">option><option value="">option>select>td>tr><tr><td align="center">所属部门:td><td>    <select name="branch" id="branch"><option value="">所有option><option value="总经理室" >总经理室option><option value="副总经理室">副总经理室option><option value="销售部">销售部option><option value="生产部">生产部option><option value="采购部">采购部option><option value="研发部">研发部option><option value="财务部">财务部option><option value="人事部">人事部option>select>  td>    tr>	<tr><td align="center">出生日期:td><td>    <input type="text" name="birthday" id="birthday" />td>tr><tr><td align="center">        贯:td><td>    <input type="text" name="nativeplace" id="nativeplace" />td>tr><tr><td align="center">婚姻状况:td><td>    <select name="marriage" id="marriage"><option value="">所有option><option value="未婚">未婚option><option value="已婚">已婚option><option value="离异">离异option><option value="丧偶">丧偶option>select>   td>tr><tr><td align="center">身份证号:td><td>    <input type="text" name="identityid" id="identityid" />td>tr><tr><td align="center">政治面貌:td><td>    <select name="politics" id="politics"><option value="">所有option><option value="党员">党员option><option value="团员">团员option><option value="群众">群众option><option value="其他">其他option>select>    td>	    tr><tr><td align="center">       族:td><td>    <input type="text" name="folk" id="folk" />td>tr><tr><td align="center">       历:td><td>    <select name="education" id="education"><option value="">所有option><option value="初中">初中option><option value="高中">高中option><option value="中专">中专option><option value="专科">专科option><option value="本科">本科option><option value="硕士">硕士option><option value="博士">博士option>select>  td>tr><tr><td align="center">        业:td><td>    <input type="text" name="department" id="department" />td>tr><tr><td align="center">毕业日期:td><td>    <input type="text" name="graduatedate" id="graduatedate" />td>tr><tr><td align="center">毕业院校:td><td>    <input type="text" name="university" id="university" />td>tr><tr><td align="center">        称:td><td>    <select name="position" id="position"><option value="">所有option><option value="助理工程师">助理工程师option><option value="工程师">工程师option><option value="高级工程师">高级工程师option><option value="助理工程师">助理工程师option><option value="会计师">会计师option><option value="注册会计师">注册会计师option><option value="助理经济师">助理经济师option><option value="经济师">经济师option><option value="高级经济师">高级经济师option><option value="其他">其他option>            select>   td>tr><tr><td align="center">在职情况:td><td>    <select name="incumbency" id="incumbency"><option value="">所有option><option value="在职">在职option><option value="离职">离职option><option value="退休">退休option><option value="待聘">待聘option><option value="其他">其他option>select>td>tr><tr><td align="center">用工形式:td><td>    <select name="incumbencytype" id="incumbencytype"><option value="">所有option><option value="临时工">正式工option><option value="临时工">临时工option><option value="合同工">合同工option><option value="见习生">见习生option><option value="其他">其他option>select>td>tr><tr><td align="center">个人简历:td><td>    <input type="text" name="resume" id="resume">td>tr><tr><td colspan=4 align="center"><input type="reset"  value="清除" />      <input type="submit" value="提交" />td>tr>table>form>body>
html>

.jsp 页面解答如下。

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<%
// 获取表单中提交的参数request.setCharacterEncoding("utf-8"); // 设置编码格式String EmployeeID = request.getParameter("employeeid");String UserName  = request.getParameter("username"); String Sex = request.getParameter("sex"); String Branch = request.getParameter("branch");String Birthday = request.getParameter("birthday"); String NativePlace = request.getParameter("nativeplace"); String Marriage = request.getParameter("marriage"); String IdentityID = request.getParameter("identityid"); String Politics = request.getParameter("politics"); String Folk = request.getParameter("folk");String Education = request.getParameter("education");String Department = request.getParameter("department"); String GraduateDate = request.getParameter("graduatedate"); String University = request.getParameter("university"); String Position = request.getParameter("position"); String Incumbency = request.getParameter("incumbency");String IncumbencyType = request.getParameter("incumbencytype"); String Resume = request.getParameter("resume");// 判断是否有必填项为空
if (EmployeeID == null || EmployeeID.equals("") ||UserName == null || UserName.equals("")) {out.println("员工编号和姓名为必填项");
} else {// 数据库连接信息String driver = "com.mysql.cj.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/hrms?useSSL=false&serverTimezone=UTC";String user = "root";String password = "123456";Connection conn = null;try {// 加载驱动程序Class.forName(driver);// 创建数据库连接conn = DriverManager.getConnection(url, user, password);// 构建插入 SQL 语句String sql = "INSERT INTO employee (EmployeeID,UserName,Sex,Branch,Birthday,NativePlace,Marriage,IdentityID,Politics,Folk,Education,Department,GraduateDate,University,Position,Incumbency,IncumbencyType,Resume) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";// 创建 PreparedStatement 对象,用于执行 SQL 语句PreparedStatement pstmt = conn.prepareStatement(sql);// 设置参数值pstmt.setString(1, EmployeeID);pstmt.setString(2, UserName);pstmt.setString(3, Sex);pstmt.setString(4, Branch);pstmt.setString(5, Birthday);pstmt.setString(6, NativePlace);pstmt.setString(7, Marriage);pstmt.setString(8, IdentityID);pstmt.setString(9, Politics);pstmt.setString(10, Folk);pstmt.setString(11, Education);pstmt.setString(12, Department);pstmt.setString(13, GraduateDate);pstmt.setString(14, University);pstmt.setString(15, Position);pstmt.setString(16, Incumbency);pstmt.setString(17, IncumbencyType);pstmt.setString(18, Resume);// 执行 SQL 语句pstmt.executeUpdate();out.println("数据插入成功");// 关闭 PreparedStatement 对象pstmt.close();} catch (Exception e) {e.printStackTrace();out.println("数据库操作失败:" + e.getMessage());} finally {// 关闭数据库连接try {if (conn != null) {conn.close();}} catch (SQLException se) {se.printStackTrace();}}
}
%>

数据库表结构如下(需要SQL文件私信我或评论区留言)。

运行结果如下。填好相对应的数据。

课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管_课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管_

点击提交,数据插入成功。

然后检查数据中是否有新插入的数据。

具体逻辑如下:

报错以及解决方法

一年多没写 了,在写这个题目的时候遇到了很报错,与其说是在写题,不如说是在处理 bug。题目很简单,一会功夫就写完了要求的功能了,但是数据库和 jdbc 的连接出现了问题,因为不是学校的机房环境,而且老师给的包是三点几的远古版本,导致一直报错,和产生其他相对应的错误。最后换了个八点多的版本,这些问题就挥之而去了,最后也是成功的运行了。接下来我们来看看出现报错有哪些(因为现在报错已经全部处理完了,所以得重新走一遍案发现场了)。

报错1️⃣:The time zone value ‘�й���׼ʱ��‘ is or more than one time zone

解决方法:

首先我们要知道出现这个报错的原因是因为MySQL的时区设置出现了问题。

报错中提示我们要这么You must the or JDBC (via the ‘’ ) to use a more time zone value if you want to time zone .

意思是:如果你想运用时区支持,必须配置服务器或JDBC驱动程序(通过 '' 配置属性)来使用更具体的时区值。

因此,我们在 jdbc 数据库连接的 url 后面加上 =UTC,即可解决。 连接 mysql 数据库时指定了时差,UTC 是全球标准时间,北京地区早标准时间8小时。

报错2️⃣: set index '255' from . set can be via the '' .

与 set index for field '255' from .

与 to to any hosts due to : .: :

课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管_课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管_

解决方法:

首先这几个报错都是还没换高版本 mysql--java-xxx.jar 前出现的 bug,我怎么也没想到老师给的是三点几的包,然后怼着 jdbc 的 url 搞了大半天,然后出现上述的这些问题。他们意思分别是:

1.从服务器接收到未知的初始字符集索引“255”。可以通过“”属性强制设置初始客户端字符集。

2.从服务器收到字段“255”的未知字符集索引。

3.由于以下异常,无法连接到任何主机:.:连接被拒绝:

首先要确保JDBC驱动程序是 MySQL /J 5.1.x 或更高版本。早期版本可能无法正确处理字符集,因此可能会导致该错误。因此我们从mysql--java-xxx.jar 开始处理,切换更高版本的,然后再检查代码有没有其他报错,如数据库服务器的其他设置、是否启用了自定义字符集等。

报错3️⃣: class com.mysql.jdbc.'. This is . The new class is com.mysql.cj.jdbc.'. The is via the SPI and of the class is .

解决方法:

报错的意思是:正在加载类“com.mysql.jdbc.”。这是不推荐使用的。新的驱动程序类是“com.mysql.cj.jdbc.”。驱动程序是通过SPI自动注册的,通常不需要手动加载驱动程序类。

首先出现这个报错的原因是因为切换高版本的mysql--java-xxx.jar 后原先的 com.mysql.jdbc. 不推荐使用了,需要把它修改成 com.mysql.cj.jdbc. 即可。

❗补充:com.mysql.cj.jdbc. 报错

遇到这个问题后,需要检查如下:

最后

这一题是关于人事管理平台的添加员工档案信息的操作题,除了原题和答案,还有报错处理的解决方法,至此三道题的内容以及介绍了,前两道题目可以看如下文章。

文章地址:课程《基础框架程序设计》考试题上篇——基础应用题(计算应用、水仙花数)

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了