Java编写班级通讯录的代码

时间: 2023-07-09 08:43:23 浏览: 39
好的,以下是一个简单的班级通讯录的Java代码实现。请注意,这只是一个参考实现,可能还有一些细节需要你自己完成。 1. 数据库设计 在MySQL数据库中创建一个名为“student”的表,包含以下字段:id(自增主键)、student_no(学号)、name(姓名)、gender(性别)、class(班级)、phone(手机号)、qq(QQ号码)、wechat(微信号)。 2. 界面设计 使用JSP技术,创建一个名为“index.jsp”的页面,包含以下元素: - 一个文本框,用于输入姓名 - 一个下拉列表,用于选择班级 - 一个查询按钮,用于查询符合条件的记录 - 一个添加按钮,用于添加新记录 - 一个表格,用于显示查询结果 3. Servlet编写 创建一个名为“StudentServlet”的Servlet类,包含以下方法: - init()方法:初始化Servlet,获取数据库连接等资源 - doGet()方法:处理GET请求,显示查询结果 - doPost()方法:处理POST请求,处理添加、删除、修改等操作 - destroy()方法:销毁Servlet,释放资源 4. JDBC编程 在Servlet中使用JDBC技术,连接数据库,执行SQL语句,完成数据的增删改查操作。 5. 登录验证 在登录时需要验证用户名和密码,可以使用Session来保存登录状态。 6. 防止重复添加 在添加记录时,需要判断学号是否已经存在,避免重复添加。 以下是一个简单的代码示例: ``` public class StudentServlet extends HttpServlet { private Connection conn; public void init() throws ServletException { try { // 连接数据库 Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/dbname", "username", "password"); } catch (Exception e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String className = request.getParameter("class"); try { // 查询数据库 String sql = "SELECT * FROM student WHERE 1=1"; if (name != null && !name.equals("")) { sql += " AND name LIKE '%" + name + "%'"; } if (className != null && !className.equals("")) { sql += " AND class='" + className + "'"; } Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); // 显示查询结果 PrintWriter out = response.getWriter(); out.println("<table>"); while (rs.next()) { out.println("<tr>"); out.println("<td>" + rs.getString("student_no") + "</td>"); out.println("<td>" + rs.getString("name") + "</td>"); out.println("<td>" + rs.getString("gender") + "</td>"); out.println("<td>" + rs.getString("class") + "</td>"); out.println("<td>" + rs.getString("phone") + "</td>"); out.println("<td>" + rs.getString("qq") + "</td>"); out.println("<td>" + rs.getString("wechat") + "</td>"); out.println("</tr>"); } out.println("</table>"); } catch (Exception e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if (action != null && action.equals("add")) { String studentNo = request.getParameter("student_no"); String name = request.getParameter("name"); String gender = request.getParameter("gender"); String className = request.getParameter("class"); String phone = request.getParameter("phone"); String qq = request.getParameter("qq"); String wechat = request.getParameter("wechat"); try { // 防止重复添加 String sql = "SELECT * FROM student WHERE student_no='" + studentNo + "'"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { response.sendRedirect("index.jsp?error=1"); return; } // 添加记录 sql = "INSERT INTO student (student_no, name, gender, class, phone, qq, wechat) VALUES ('" + studentNo + "', '" + name + "', '" + gender + "', '" + className + "', '" + phone + "', '" + qq + "', '" + wechat + "')"; stmt.executeUpdate(sql); response.sendRedirect("index.jsp"); } catch (Exception e) { e.printStackTrace(); } } else if (action != null && action.equals("delete")) { String[] ids = request.getParameterValues("id"); if (ids != null) { try { // 删除记录 String sql = "DELETE FROM student WHERE id IN ("; for (int i = 0; i < ids.length; i++) { if (i > 0) { sql += ","; } sql += ids[i]; } sql += ")"; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); response.sendRedirect("index.jsp"); } catch (Exception e) { e.printStackTrace(); } } } else if (action != null && action.equals("update")) { String id = request.getParameter("id"); String studentNo = request.getParameter("student_no"); String name = request.getParameter("name"); String gender = request.getParameter("gender"); String className = request.getParameter("class"); String phone = request.getParameter("phone"); String qq = request.getParameter("qq"); String wechat = request.getParameter("wechat"); try { // 更新记录 String sql = "UPDATE student SET student_no='" + studentNo + "', name='" + name + "', gender='" + gender + "', class='" + className + "', phone='" + phone + "', qq='" + qq + "', wechat='" + wechat + "' WHERE id=" + id; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); response.sendRedirect("index.jsp"); } catch (Exception e) { e.printStackTrace(); } } } public void destroy() { try { // 关闭数据库连接 conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ```

相关推荐

最新推荐

recommend-type

C语言编写的班级通讯录

设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。 (1) 数据包括:人名、工作单位、电话号码和E-mail地址。 (2) 可对记录中的姓名和电话号码进行修改。 (3) 可增加或删除记录。 (4) ...
recommend-type

Java通讯录管理系统

2:Java通讯录系统用到的都是一些简单易懂的代码,方便上手,适合初学者借鉴学习! 3:直接可以作为Java前面作业,或者想要有自己的内容稍微改改即可! 4:没有过多的Class类文件,代码内容干净,简介! 5:100%包...
recommend-type

java课程设计-通讯录系统

与此同时,通讯录便产生了。形形色色的关于通讯录对的越来越方便着人们的生活。通讯录管理软件使用于同学、朋友等日常生活的联系人进行的相关的信息的编辑功能,便于用户随时查找所需要的联系人的所有信息。该通讯录...
recommend-type

java通讯录论文(内附全部代码)

java通讯录论文(内附全部代码)java通讯录论文(内附全部代码)java通讯录论文(内附全部代码)
recommend-type

用java语言编写的详细通讯录

要求:1)通信录需记录的个人信息自行设计。2)要求采用图形用户界面(GUI),界面效果及事件处理方式自行设计,尽量考虑美观与易用性。3)系统结构设计应采用面向对象的思想,发现问题域中的事物(常称为实体)
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。