写一个基于Javaweb的学生信息管理系统
时间: 2023-07-06 13:07:43 浏览: 69
好的,我可以提供一个简单的学生信息管理系统的思路和代码示例。
1. 数据库设计
首先需要设计数据库,包括表的结构和字段名。在本例中,我们将设计一个名为“student_db”的数据库,其中包括一个“student”表,该表包含以下字段:
- id:学生编号,主键
- name:学生姓名
- gender:学生性别
- age:学生年龄
- department:学生所属系别
- major:学生所学专业
2. 前端设计
接下来需要设计前端页面,包括学生信息列表页面和添加/编辑学生信息页面。在本例中,我们将使用JSP和Servlet技术实现前端页面。
- 学生信息列表页:显示学生信息列表和添加/编辑学生信息按钮。
- 添加/编辑学生信息页:包括表单输入框和提交按钮,用于添加或编辑学生信息。
3. 后端实现
使用Java和Javaweb技术实现后端功能,包括以下步骤:
- 连接数据库:使用JDBC连接数据库,并在程序中进行异常处理。
- 查询学生信息:编写查询学生信息的SQL语句,并在程序中执行,将查询结果返回到前端页面。
- 添加学生信息:编写添加学生信息的SQL语句,并在程序中执行,将添加结果返回到前端页面。
- 编辑学生信息:编写编辑学生信息的SQL语句,并在程序中执行,将修改结果返回到前端页面。
- 删除学生信息:编写删除学生信息的SQL语句,并在程序中执行,将删除结果返回到前端页面。
4. 代码示例
以下是一个简单的学生信息管理系统的代码示例,包括数据库连接、查询和添加功能的实现。
```java
// DatabaseUtil.java
import java.sql.*;
public class DatabaseUtil {
private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost/student_db";
private static final String USER = "root";
private static final String PASS = "root";
public static Connection getConnection() throws SQLException {
try {
Class.forName(JDBC_DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return DriverManager.getConnection(DB_URL, USER, PASS);
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// Student.java
public class Student {
private int id;
private String name;
private String gender;
private int age;
private String department;
private String major;
public Student(int id, String name, String gender, int age, String department, String major) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
this.department = department;
this.major = major;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
// StudentDao.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentDao {
private Connection conn;
public StudentDao() {
try {
conn = DatabaseUtil.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Student> getAllStudents() {
List<Student> students = new ArrayList<>();
String sql = "SELECT * FROM student";
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
int age = rs.getInt("age");
String department = rs.getString("department");
String major = rs.getString("major");
Student student = new Student(id, name, gender, age, department, major);
students.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public boolean addStudent(Student student) {
String sql = "INSERT INTO student (name, gender, age, department, major) VALUES (?, ?, ?, ?, ?)";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getGender());
pstmt.setInt(3, student.getAge());
pstmt.setString(4, student.getDepartment());
pstmt.setString(5, student.getMajor());
int result = pstmt.executeUpdate();
if (result == 1) {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
// StudentServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.List;
public class StudentServlet extends HttpServlet {
private StudentDao studentDao;
public void init() {
studentDao = new StudentDao();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Student> students = studentDao.getAllStudents();
request.setAttribute("students", students);
RequestDispatcher dispatcher = request.getRequestDispatcher("/student_list.jsp");
dispatcher.forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String gender = request.getParameter("gender");
int age = Integer.parseInt(request.getParameter("age"));
String department = request.getParameter("department");
String major = request.getParameter("major");
Student student = new Student(0, name, gender, age, department, major);
if (studentDao.addStudent(student)) {
request.setAttribute("message", "添加成功!");
} else {
request.setAttribute("message", "添加失败!");
}
doGet(request, response);
}
public void destroy() {
DatabaseUtil.close(studentDao.getConnection(), null, null);
}
}
```
以上代码实现了学生信息管理系统的基本功能,包括数据库连接、查询和添加功能。在实际开发中,还需要添加编辑和删除功能,并进行页面美化和优化等工作。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)