public class StudentDao { private String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; private String url = "jdbc:odbc:mydb"; private void executeUpdate(String sql) { try { Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); cmd.executeUpdate(sql); con.close(); } catch (Exception ex) { ex.printStackTrace(); } } public boolean modifyStudent_info(String sno, String sname, String sex, String add ,String tel) { String sql = "update stu_pro set sno = '"+sno+"',sname = '"+sname+"',sex = '"+sex+"',add = '"+add +"',tel = '"+tel+"'where sno = '"+sno+"' "; executeUpdate(sql); orderStudent_no_test(); orderStudent_no_syn(); return true ; } public boolean modifyStudent_score(String sno,double math,double physics,double english,double score_ave, double score_tog,double score_pol,double score_tea,double score_syn){ String sql = "update stu_pro set math = '"+math+"',physics = '"+physics+"',english = '"+english +"',score_ave = '"+score_ave+"',score_tog = '"+score_tog+"',score_pol = '"+score_pol +"',score_tea = '"+score_tea+"',score_syn = '"+score_syn+"' where sno = '"+sno+"' "; executeUpdate(sql); orderStudent_no_test(); orderStudent_no_syn(); return true; }
时间: 2024-04-03 09:36:01 浏览: 61
这段代码是一个 Java 类,名为 StudentDao,用于与数据库进行交互,提供了修改学生信息和成绩的方法。它依赖于 java.sql 包,使用 JDBC API 来连接和操作数据库。在这个类中,有两个私有属性:driver 和 url,分别表示数据库驱动和连接 URL。同时,这个类还定义了一个私有方法 executeUpdate(sql),用于执行 SQL 更新语句。在 modifyStudent_info(sno, sname, sex, add, tel) 和 modifyStudent_score(sno, math, physics, english, score_ave, score_tog, score_pol, score_tea, score_syn) 方法中,它们都调用了 executeUpdate(sql) 方法来执行 SQL 更新语句,从而实现对数据库中学生信息和成绩的修改。最后,这两个方法还调用了 orderStudent_no_test() 和 orderStudent_no_syn() 方法,对学生信息进行排序,然后返回 true 表示操作成功。
相关问题
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>
private void jb_registActionPerformed(java.awt.event.ActionEvent evt) { String name = nameTxt.getText(); String xibie = xibieTxt.getText(); String classroom = classTxt.getText(); String bed = bedTxt.getText(); String sex = ""; if (jb_man.isSelected()) { sex = "男"; } else if (jb_women.isSelected()) { sex = "女"; } Room room = (Room) this.jcb_room.getSelectedItem(); String dormitory = room.getId(); Connection con = null; try { con = dmutil.getCon(); Student student = new Student(name, sex, xibie, classroom, Integer.parseInt(dormitory), Integer.parseInt(bed)); int a = studentdao.StudentAdd(con, student); if (a == 1) { JOptionPane.showMessageDialog(null, "登记成功!"); this.resetValue(); } else { JOptionPane.showMessageDialog(null, "登记失败!"); } } catch (Exception e) { JOptionPane.showMessageDialog(null, "登记失败!"); e.printStackTrace(); } }
这段代码是一个事件处理方法,当用户点击“注册”按钮时会被调用。它首先从用户界面上获取输入的姓名、系别、班级、床位等信息,并根据用户选择的性别确定性别信息。然后,它从下拉框中获取房间信息,并将房间号转换为整数类型。
接着,它获取一个数据库连接(使用 dmutil.getCon() 方法),创建一个 Student 对象,并将用户输入的信息设置到该对象中。然后,它调用 studentdao.StudentAdd() 方法将该学生信息插入到数据库中,并根据返回值弹出相应的提示信息。如果在这个过程中发生异常,它会将异常打印出来,并弹出“登记失败”的提示框。
最后,该方法调用 resetValue() 方法将用户界面上的输入框清空。
阅读全文