📄 classdao.java
字号:
package Sys.dao;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import Sys.vo.*;
import Sys.db.*;
public class ClassDao {
private Connection conDB=null;
public ClassDao(){
conDB=DatabaseTool.conDB();
}
public void addClass(ClassInfo classinfo){
PreparedStatement ps=null;
try{
ps=conDB.prepareStatement("Insert into Class(classid,personcounts,remarks" +
") values(?,?,?)");
ps.setString(1, classinfo.getClassID());
ps.setString(2, classinfo.getPersoncounts());
ps.setString(3, classinfo.getRemarks());
ps.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "添加班级失败");
}finally{
DatabaseTool.closeStatement(ps);
}
}
public void modifyClass(ClassInfo classinfo,String classid){//这里不通过查询要修改的班级ID来修改,这样实现比较好!
PreparedStatement ps=null;
try{
ps=conDB.prepareStatement("update Class set classid=?,personcounts=?" +
",remarks=? where classid=?");
ps.setString(1, classinfo.getClassID());
ps.setString(2, classinfo.getPersoncounts());
ps.setString(3, classinfo.getRemarks());
ps.setString(4, classid);
ps.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "修改班级失败");
}finally{
DatabaseTool.closeStatement(ps);
}
}
public void delClass(String classid){
PreparedStatement ps=null;
try{
ps=conDB.prepareStatement("delete from Class where classid=?");
ps.setString(1, classid);
ps.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "删除班级失败,没有该班级ID");
}finally{
DatabaseTool.closeStatement(ps);
}
}
//public void addPersonForClass()//给班级更新班级的学生人数!这里可以不在数据库设人数字段,可以通过后期计算得到两种都有利弊
//如果表没有人数字段,那么要求在面板输出时,就要另外的操作数据库的方法使用,然而如果在每次添加学生时,都要用这个方法修改班级的人数
//到这里已经懂了,因为操作添加次数会比较多,而面板输出比较少,所以不应该每次都修改学生的人数!不过即使我已经添加了人数这个字段,我
//也可以不在每次添加学生时修改这个表的认输字段!所以不写这个方法了
public ClassInfo getClassInfo(String classid){
PreparedStatement ps=null;
ResultSet rs=null;
ClassInfo classinfo=null;
try{
ps=conDB.prepareStatement("selcet * from Class");
rs=ps.executeQuery();
if(rs.next()){
classinfo=new ClassInfo();
classinfo.setClassID(rs.getString("classid"));
classinfo.setPersoncounts(rs.getString("personcounts"));
classinfo.setRemarks(rs.getString("remarks"));
}
}catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "获得班级信息失败");
}finally{
DatabaseTool.closeResultSet(rs);
DatabaseTool.closeStatement(ps);
}
return classinfo;
}
public List<ClassInfo> getAllClass(){
PreparedStatement ps=null;
ResultSet rs=null;
List<ClassInfo> classlist=null;
try{
ps=conDB.prepareStatement("select * from Class");
rs=ps.executeQuery();
classlist=new ArrayList<ClassInfo>();
ClassInfo classinfo=null;
while(rs.next()){
classinfo=new ClassInfo();
classinfo.setClassID(rs.getString("classid"));
classinfo.setPersoncounts(rs.getString("personcounts"));
classinfo.setRemarks(rs.getString("remarks"));
classlist.add(classinfo);
}
}catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null,"获得班级表失败");
}finally{
DatabaseTool.closeResultSet(rs);
DatabaseTool.closeStatement(ps);
}
return classlist;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -