public class StudentDAO { public List<Student> getAllStudents() { // 从数据库中获取所有学生信息的逻辑 } public void addStudent(Student student) { // 向数据库中添加学生信息的逻辑 } public void updateStudent(Student student) { // 更新数据库中学生信息的逻辑 } public void deleteStudent(int studentId) { // 从数据库中删除学生信息的逻辑 } } public class ClassDAO { public List<Class> getAllClasses() { // 从数据库中获取所有班级信息的逻辑 } public void addClass(Class class) { // 向数据库中添加班级信息的逻辑 } public void updateClass(Class class) { // 更新数据库中班级信息的逻辑 } public void deleteClass(int classId) { // 从数据库中删除班级信息的逻辑 } } public class TeacherDAO { public List<Teacher> getAllTeachers() { // 从数据库中获取所有教师信息的逻辑 } public void addTeacher(Teacher teacher) { // 向数据库中添加教师信息的逻辑 } public void updateTeacher(Teacher teacher) { // 更新数据库中教师信息的逻辑 } public void deleteTeacher(int teacherId) { // 从数据库中删除教师信息的逻辑 } }
时间: 2024-03-04 14:51:36 浏览: 24
这段代码定义了三个数据访问对象(DAO)类:StudentDAO、ClassDAO和TeacherDAO。这些类包含了一些方法,用于访问数据库中的学生、班级和教师信息。
每个DAO类都包含以下方法:
- getAllXXX():用于从数据库中获取所有XXX信息的方法,其中XXX是类的名称。
- addXXX():用于向数据库中添加XXX信息的方法。
- updateXXX():用于更新数据库中XXX信息的方法。
- deleteXXX():用于从数据库中删除XXX信息的方法。
这些方法都是抽象的,因为它们没有实现。具体的实现应该在实现DAO类的时候提供。这些方法提供了一个标准的接口,用于访问和操作数据库中的信息。
相关问题
完善下列代码:public class StudentDAO { public List<Student> getAllStudents() { // 从数据库中获取所有学生信息的逻辑 } public void addStudent(Student student) { // 向数据库中添加学生信息的逻辑 } public void updateStudent(Student student) { // 更新数据库中学生信息的逻辑 } public void deleteStudent(int studentId) { // 从数据库中删除学生信息的逻辑 } } public class ClassDAO { public List<Class> getAllClasses() { // 从数据库中获取所有班级信息的逻辑 } public void addClass(Class class) { // 向数据库中添加班级信息的逻辑 } public void updateClass(Class class) { // 更新数据库中班级信息的逻辑 } public void deleteClass(int classId) { // 从数据库中删除班级信息的逻辑 } } public class TeacherDAO { public List<Teacher> getAllTeachers() { // 从数据库中获取所有教师信息的逻辑 } public void addTeacher(Teacher teacher) { // 向数据库中添加教师信息的逻辑 } public void updateTeacher(Teacher teacher) { // 更新数据库中教师信息的逻辑 } public void deleteTeacher(int teacherId) { // 从数据库中删除教师信息的逻辑 } }
下面是完整的代码:
```java
public class StudentDAO {
public List<Student> getAllStudents() {
// 从数据库中获取所有学生信息的逻辑
List<Student> students = new ArrayList<>();
// 数据库查询操作
// 将查询结果封装为Student对象
// 添加到students列表中
return students;
}
public void addStudent(Student student) {
// 向数据库中添加学生信息的逻辑
// 将Student对象转换为数据库中的记录
// 执行数据库插入操作
}
public void updateStudent(Student student) {
// 更新数据库中学生信息的逻辑
// 将Student对象转换为数据库中的记录
// 执行数据库更新操作
}
public void deleteStudent(int studentId) {
// 从数据库中删除学生信息的逻辑
// 执行数据库删除操作
}
}
public class ClassDAO {
public List<Class> getAllClasses() {
// 从数据库中获取所有班级信息的逻辑
List<Class> classes = new ArrayList<>();
// 数据库查询操作
// 将查询结果封装为Class对象
// 添加到classes列表中
return classes;
}
public void addClass(Class classObj) {
// 向数据库中添加班级信息的逻辑
// 将Class对象转换为数据库中的记录
// 执行数据库插入操作
}
public void updateClass(Class classObj) {
// 更新数据库中班级信息的逻辑
// 将Class对象转换为数据库中的记录
// 执行数据库更新操作
}
public void deleteClass(int classId) {
// 从数据库中删除班级信息的逻辑
// 执行数据库删除操作
}
}
public class TeacherDAO {
public List<Teacher> getAllTeachers() {
// 从数据库中获取所有教师信息的逻辑
List<Teacher> teachers = new ArrayList<>();
// 数据库查询操作
// 将查询结果封装为Teacher对象
// 添加到teachers列表中
return teachers;
}
public void addTeacher(Teacher teacher) {
// 向数据库中添加教师信息的逻辑
// 将Teacher对象转换为数据库中的记录
// 执行数据库插入操作
}
public void updateTeacher(Teacher teacher) {
// 更新数据库中教师信息的逻辑
// 将Teacher对象转换为数据库中的记录
// 执行数据库更新操作
}
public void deleteTeacher(int teacherId) {
// 从数据库中删除教师信息的逻辑
// 执行数据库删除操作
}
}
```
在每个DAO类中,我们定义了与数据库交互的方法。这些方法封装了数据库操作的细节,使得其他类可以通过调用它们来访问数据库中的数据。对于每个操作,我们都将Java对象转换为数据库记录,并执行相应的数据库操作。
public class StudentDao { private static Connection conn = null; public static void initConnection() throws Exception { // 连接MySQL Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/sys", "root", "1234"); } // 返回所有学生 public ArrayList<Student> getAllStudents() throws Exception { ArrayList<Student> al = new ArrayList<Student>(); initConnection(); String sql = "SELECT num,name FROM tb_student"; Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery(sql); while (rs.next()) { Student stu = new Student(); al.add(stu); } rs.close(); stat.close(); closeConnection(); return al; } // 添加学生信息到数据中 public int addStudent(Student student) throws Exception { initConnection(); //创建一个sql语句 String sql = "insert into tb_student(num,name) values (?, ?)"; //创建一个PreparedStatement 对象 PreparedStatement ps=conn.prepareStatement(sql); //填充参数 ps.setString(1,student.getNum()); ps.setString(2,student.getName()); //执行sql语句 int retv=ps.executeUpdate(); ps.close(); //关闭链接 conn.close(); return retv; } // 修改学生信息 public int updateStudent(Student student) throws Exception { //创建一个连接 initConnection(); //创建一个sql语句 String sql = ""; //创建一个PreparedStatement 对象 PreparedStatement ps=conn.prepareStatement(sql); //填充参数 //执行sql语句 int retv=ps.executeUpdate(); ps.close(); //关闭链接 closeConnection(); //返回影响的行数 return retv; } // 删除学生 public int delStudent(Student student) throws Exception { //创建一个连接 initConnection(); //创建一个sql语句 String sql = ""; //创建一个PreparedStatement 对象 PreparedStatement ps=conn.prepareStatement(sql); //填充参数 //执行sql语句 int retv=ps.executeUpdate(); ps.close(); //关闭链接 closeConnection(); //返回影响的行数 return retv; } public static void closeConnection() throws Exception { conn.close(); } }请把代码补充完整,并写出相应的增、删、改、查的.jsp代码
这里给出Student类的基本属性和方法:
public class Student {
private String num; // 学号
private String name; // 姓名
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
补充完整的StudentDao类如下:
import java.sql.*;
import java.util.ArrayList;
public class StudentDao {
private static Connection conn = null;
public static void initConnection() throws Exception {
// 连接MySQL
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/sys", "root", "1234");
}
// 返回所有学生
public ArrayList<Student> getAllStudents() throws Exception {
ArrayList<Student> al = new ArrayList<Student>();
initConnection();
String sql = "SELECT num,name FROM tb_student";
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
Student stu = new Student();
stu.setNum(rs.getString("num"));
stu.setName(rs.getString("name"));
al.add(stu);
}
rs.close();
stat.close();
closeConnection();
return al;
}
// 添加学生信息到数据中
public int addStudent(Student student) throws Exception {
initConnection();
// 创建一个sql语句
String sql = "insert into tb_student(num,name) values (?, ?)";
// 创建一个PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 填充参数
ps.setString(1, student.getNum());
ps.setString(2, student.getName());
// 执行sql语句
int retv = ps.executeUpdate();
ps.close();
// 关闭链接
closeConnection();
return retv;
}
// 修改学生信息
public int updateStudent(Student student) throws Exception {
// 创建一个连接
initConnection();
// 创建一个sql语句
String sql = "update tb_student set name=? where num=?";
// 创建一个PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 填充参数
ps.setString(1, student.getName());
ps.setString(2, student.getNum());
// 执行sql语句
int retv = ps.executeUpdate();
ps.close();
// 关闭链接
closeConnection();
// 返回影响的行数
return retv;
}
// 删除学生
public int delStudent(Student student) throws Exception {
// 创建一个连接
initConnection();
// 创建一个sql语句
String sql = "delete from tb_student where num=?";
// 创建一个PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 填充参数
ps.setString(1, student.getNum());
// 执行sql语句
int retv = ps.executeUpdate();
ps.close();
// 关闭链接
closeConnection();
// 返回影响的行数
return retv;
}
public static void closeConnection() throws Exception {
conn.close();
}
}
增删改查的.jsp代码如下:
<!-- 添加学生 -->
<form action="addStudent.jsp" method="post">
学号:<input type="text" name="num"><br>
姓名:<input type="text" name="name"><br>
<input type="submit" value="添加">
</form>
<!-- 修改学生 -->
<form action="updateStudent.jsp" method="post">
学号:<input type="text" name="num"><br>
姓名:<input type="text" name="name"><br>
<input type="submit" value="修改">
</form>
<!-- 删除学生 -->
<form action="delStudent.jsp" method="post">
学号:<input type="text" name="num"><br>
<input type="submit" value="删除">
</form>
<!-- 查询学生 -->
<table border="1" cellpadding="5">
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
<%
StudentDao dao = new StudentDao();
ArrayList<Student> list = dao.getAllStudents();
for (Student stu : list) {
%>
<tr>
<td><%=stu.getNum()%></td>
<td><%=stu.getName()%></td>
</tr>
<% } %>
</table>
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)