Java编写班级通讯录的代码
时间: 2023-07-09 22:43:23 浏览: 91
好的,以下是一个简单的班级通讯录的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();
}
}
}
```
阅读全文