修改功能和页面总分不显示

img

img



package com.roadjava.service.impl;

import com.roadjava.entity.StudentDO;
import com.roadjava.req.StudentRequest;
import com.roadjava.res.TableDTO;
import com.roadjava.service.StudentService;
import com.roadjava.util.DBUtil;
import com.sun.corba.se.impl.ior.ObjectAdapterIdNumber;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

public class StudentServiceImpl implements StudentService {

    public TableDTO retrieveStudents(StudentRequest request) {
        StringBuilder sql = new StringBuilder();
        sql.append("select * from student2 ");
        if (request.getSearchKey() != null && !"".equals(request.getSearchKey().trim())) {
            sql.append(" where name like '%" + request.getSearchKey().trim() + "%' ");
        }
        sql.append("order by id desc limit ").append(request.getStart()).append(",").append(request.getPageSize());
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        TableDTO returnDTO = new TableDTO();

        try {
            conn = DBUtil.getConn();
            ps = conn.prepareStatement(sql.toString());
            rs = ps.executeQuery();
            //查询记录

            returnDTO.setData(fillData(rs));
            sql.setLength(0);
            sql.append("select count(*) from student2 ");
            if (request.getSearchKey() != null && !"".equals(request.getSearchKey().trim())) {
                sql.append(" where name like '%" + request.getSearchKey().trim() + "%' ");
            }

            ps = conn.prepareStatement(sql.toString());
            rs = ps.executeQuery();
            while (rs.next()) {
                int count = rs.getInt(1);
                returnDTO.setTotalCount(count);

            }
            return returnDTO;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.closeRs(rs);
            DBUtil.closePs(ps);
            DBUtil.closeConn(conn);
        }

        return null;
    }

    public boolean add(StudentDO studentDo) {
        StringBuilder sql = new StringBuilder();
        sql.append("insert into student2(name,no,banji,chinese,english,math) ");
        sql.append("values(?,?,?,?,?,?) ");
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {
            conn = DBUtil.getConn();
            ps = conn.prepareStatement(sql.toString());
            ps.setString(1, studentDo.getName());
            ps.setString(2, studentDo.getNo());
            ps.setString(3, studentDo.getChinese());
            ps.setString(4, studentDo.getEnglish());
            ps.setString(5, studentDo.getMath());
            ps.setString(6, studentDo.getBanji());
            return ps.executeUpdate() == 1;

        } catch (Exception e) {
            e.printStackTrace();
        } finally {

            DBUtil.closePs(ps);
            DBUtil.closeConn(conn);
        }

        return false;
    }

    public StudentDO getById(int selectedStudentId) {
        StringBuilder sql = new StringBuilder("select * from student2 where id = ? ");
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        StudentDO studentDO = new StudentDO();

        try {
            conn = DBUtil.getConn();
            ps = conn.prepareStatement(sql.toString());
            ps.setInt(1, selectedStudentId);
            rs = ps.executeQuery();
            while (rs.next()) {
                //处理查出的每一条记录
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String no = rs.getString("no");
                String chinese = rs.getString("chinese");
                String english = rs.getString("english");
                String math = rs.getString("math");
                String banji = rs.getString("banji");
                studentDO.setId(id);
                studentDO.setNo(no);
                studentDO.setName(name);
                studentDO.setChinese(chinese);
                studentDO.setEnglish(english);
                studentDO.setMath(math);
                studentDO.setBanji(banji);


            }

            return studentDO;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.closeRs(rs);
            DBUtil.closePs(ps);
            DBUtil.closeConn(conn);
        }

        return null;
    }

    public boolean update(StudentDO studentDo) {
        StringBuilder sql = new StringBuilder();
        sql.append("update student2 set name = ?,banji=?,no= ?,chinese= ?,english= ?,math= ?");
        sql.append("where id = ?");
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {
            conn = DBUtil.getConn();
            ps = conn.prepareStatement(sql.toString());
            ps.setString(1, studentDo.getName());
            ps.setString(2, studentDo.getNo());
            ps.setString(3, studentDo.getChinese());
            ps.setString(4, studentDo.getEnglish());
            ps.setString(5, studentDo.getMath());
            ps.setString(7, studentDo.getBanji());
            ps.setInt(6, studentDo.getId());
            return ps.executeUpdate() == 1;

        } catch (Exception e) {
            e.printStackTrace();
        } finally {

            DBUtil.closePs(ps);
            DBUtil.closeConn(conn);
        }
        return false;
    }

    public boolean delete(int[] selectedStudentIds) {
        StringBuilder sql = new StringBuilder();
        sql.append("delete from student2  where id in (");

        int length = selectedStudentIds.length;
        for (int i = 0; i < length; i++) {
            if (i == (length - 1)) {
                sql.append("?");
            } else {
                sql.append("?,");
            }
        }
        sql.append(")");
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {
            conn = DBUtil.getConn();
            ps = conn.prepareStatement(sql.toString());
            for (int i = 0; i < length; i++) {
                //设置参数,从1开始
               ps.setInt(i + 1,selectedStudentIds[i]);

            }
            return ps.executeUpdate() == length;

        } catch (Exception e) {
            e.printStackTrace();
        } finally {

            DBUtil.closePs(ps);
            DBUtil.closeConn(conn);
        }
        return false;


    }

    private Vector> fillData(ResultSet rs) throws SQLException {
        Vector> data = new Vector>();
        while (rs.next()) {
            //处理查出的每一条记录
            Vector oneRecord = new Vector();
            int id = rs.getInt("id");
            String name = rs.getString("name");
            String no = rs.getString("no");
            int chinese = rs.getInt("chinese");
            int english = rs.getInt("english");
            int math = rs.getInt("math");
            int banji = rs.getInt("banji");
            int totalScore = chinese + english + math;
            oneRecord.addElement(id);
            oneRecord.addElement(name);
            oneRecord.addElement(no);
            oneRecord.addElement(chinese);
            oneRecord.addElement(english);
            oneRecord.addElement(math);
            oneRecord.addElement(banji);
            oneRecord.addElement(totalScore);
            data.addElement(oneRecord);

        }
        return data;
    }
}



package com.roadjava.handler;

import com.roadjava.entity.StudentDO;
import com.roadjava.service.StudentService;
import com.roadjava.service.impl.StudentServiceImpl;
import com.roadjava.student.view.AddStudentView;
import com.roadjava.student.view.MainView;
import com.roadjava.student.view.UpdateStudentView;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class UpdateStudentViewHandler implements ActionListener {

    private UpdateStudentView updateStudentView;
    private MainView mainView;

    public UpdateStudentViewHandler(UpdateStudentView updateStudentView, MainView mainView) {
        this.updateStudentView = updateStudentView;
        this.mainView = mainView;
    }

    public void actionPerformed(ActionEvent e) {
        JButton Jbutton = (JButton) e.getSource();
        String text = Jbutton.getText();
        if ("修改".equals(text)) {
            StudentService studentService = new StudentServiceImpl();
            StudentDO studentDo = updateStudentView.buildUpdatedstudentDO();
```java


        boolean updateResult = studentService.update(studentDo);
        if (updateResult) {
            //重新加载表格查到最新数据
            mainView.reloadTable();
            updateStudentView.dispose();
        } else {
            JOptionPane.showMessageDialog(updateStudentView,"修改失败");
        }


    }
}

}


```java
package com.roadjava.entity;

public class StudentDO {
    private Integer id;
    private String name;
    private String no;
    private String chinese;
    private String english;
    private String math;
    private String banji;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public String getChinese() {
        return chinese;
    }

    public void setChinese(String chinese) {
        this.chinese = chinese;
    }

    public String getEnglish() {
        return english;
    }

    public void setEnglish(String english) {
        this.english = english;
    }

    public String getMath() {
        return math;
    }

    public void setMath(String math) {
        this.math = math;
    }


    public String  getBanji() {
        return banji;
    }

    public void setBanji(String banji) {
        this.banji = banji;
    }
}


package com.roadjava.student.view;


import com.roadjava.entity.StudentDO;
import com.roadjava.handler.UpdateStudentViewHandler;
import com.roadjava.service.StudentService;
import com.roadjava.service.impl.StudentServiceImpl;

import javax.swing.*;
import java.awt.*;

public class UpdateStudentView extends JDialog {


    JLabel No = new JLabel("编号");
    JTextField NoTxt = new JTextField();
    JLabel nameLabel = new JLabel("姓名:");
    JLabel noLabel = new JLabel("学号:");
    JLabel chineseLabel = new JLabel("语文:");
    JLabel englishLabel = new JLabel("数学:");
    JLabel mathLabel = new JLabel("英语:");
    JLabel banjiLabel = new JLabel("班级:");
    JTextField nameTxt = new JTextField();
    JTextField noTxt = new JTextField();
    JTextField chineseTxt = new JTextField();
    JTextField englishTxt = new JTextField();
    JTextField mathTxt = new JTextField();
    JTextField banjiTxt = new JTextField();
    JButton updateBtn = new JButton("修改");



   UpdateStudentViewHandler updateStudentViewHandler;


    public UpdateStudentView(MainView mainView, int selectedStudentId){

        super(mainView,"修改学生",true);
        //查询selectstudentIds对应的记录并回显
        StudentService studentService = new StudentServiceImpl();
        StudentDO selectedStu = studentService.getById(selectedStudentId);

        updateStudentViewHandler = new UpdateStudentViewHandler(this,mainView);
        updateBtn.addActionListener(updateStudentViewHandler);

        NoTxt.setText(selectedStu.getId() + "");
        nameTxt.setText(selectedStu.getName() + "");
        noTxt.setText(selectedStu.getNo() + "");
        chineseTxt.setText(selectedStu.getChinese() + "");
        englishTxt.setText(selectedStu.getEnglish() + "");
        mathTxt.setText(selectedStu.getMath() + "");
        banjiTxt.setText(selectedStu.getMath() + "");
        //不可编辑
        NoTxt.setEnabled(false);






        Container contentPane = getContentPane();

        setLayout(null);

        nameLabel.setFont(new Font("黑体",Font.PLAIN,20));
        noLabel.setFont(new Font("黑体",Font.PLAIN,20));
        chineseLabel.setFont(new Font("黑体",Font.PLAIN,20));
        englishLabel.setFont(new Font("黑体",Font.PLAIN,20));
        mathLabel.setFont(new Font("黑体",Font.PLAIN,20));
        updateBtn.setFont(new Font("黑体",Font.PLAIN,30));
        No.setFont(new Font("黑体", Font.PLAIN, 20));
        banjiLabel.setFont(new Font("黑体", Font.PLAIN, 20));

        contentPane.add(nameLabel);
        contentPane.add(nameTxt);
        contentPane.add(noLabel);
        contentPane.add(noTxt);
        contentPane.add(chineseLabel);
        contentPane.add(chineseTxt);
        contentPane.add(englishLabel);
        contentPane.add(englishTxt);
        contentPane.add(mathLabel);
        contentPane.add(mathTxt);
        contentPane.add(updateBtn);
        contentPane.add(No);
        contentPane.add(NoTxt);
        contentPane.add(banjiLabel);
        contentPane.add(banjiTxt);

        No.setBounds(40, 10, 50, 50);
         NoTxt.setBounds(100, 20, 200, 30);

        nameLabel.setBounds(40,70,50,50);
        nameTxt.setBounds(100,80,200,30);

        noLabel.setBounds(40,120,50,50);
        noTxt.setBounds(100,130,200,30);

        chineseLabel.setBounds(40,170,50,50);
        chineseTxt.setBounds(100,180,200,30);

        englishLabel.setBounds(40,220,50,50);
        englishTxt.setBounds(100,230,200,30);

        mathLabel.setBounds(40,270,50,50);
        mathTxt.setBounds(100,280,200,30);

        banjiLabel.setBounds(40,310,50,50);
        banjiTxt.setBounds(100,320,200,30);

        updateBtn.setBounds(120,400,100,30);







        setLocationRelativeTo(null);
        setSize(350, 500);
        setVisible(true);
        //退出销毁当前窗体
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setResizable(false);

    }

//获取修改后的学生对象
    public StudentDO buildUpdatedstudentDO() {
            StudentDO studentDO = new StudentDO();
            studentDO.setId(Integer.valueOf(NoTxt.getText()));
            studentDO.setName(nameTxt.getText());
            studentDO.setNo(noTxt.getText());
            studentDO.setChinese(chineseTxt.getText());
            studentDO.setEnglish(englishTxt.getText());
            studentDO.setMath(mathTxt.getText());
            studentDO.setMath(banjiTxt.getText());


            return studentDO;
        }



}





public interface StudentService {

    TableDTO retrieveStudents(StudentRequest request);


    boolean add(StudentDO studentDo);

    StudentDO getById(int selectedStudentId);

    boolean update(StudentDO studentDo);

    boolean delete(int[] selectedStudentIds);
}

img

img

是照着一个网上教程做的学生成绩管理系统,想在里面加点别的功能,比如这个班级表,结果修改的时候出现了问题,而且总分那一栏也不显示了

实在是看不懂


package com.roadjava.handler;

import com.roadjava.entity.AdminDO;
import com.roadjava.service.AdminService;
import com.roadjava.service.StudentService;
import com.roadjava.service.impl.AdminServiceImpl;
import com.roadjava.service.impl.StudentServiceImpl;
import com.roadjava.student.view.AddStudentView;
import com.roadjava.student.view.LoginView;
import com.roadjava.student.view.MainView;
import com.roadjava.student.view.UpdateStudentView;
import sun.applet.Main;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class MainViewHandler implements ActionListener {

    private MainView mainView;

    public MainViewHandler(MainView mainView) {
        this.mainView = mainView;
    }

    public void actionPerformed(ActionEvent e) {
        JButton Jbutton = (JButton) e.getSource();
        String text = Jbutton.getText();
        if ("增加".equals(text)) {
            new AddStudentView(mainView);

        } else if ("修改".equals(text)) {
            int[] selectedStudentIds = mainView.getSelectedStudentIds();
            if (selectedStudentIds.length != 1) {
                JOptionPane.showMessageDialog(mainView, "一次只能修改一行");
                return;
            }

            new UpdateStudentView(mainView, selectedStudentIds[0]);

        } else if ("删除".equals(text)) {
            int[] selectedStudentIds = mainView.getSelectedStudentIds();
            if (selectedStudentIds.length == 0) {
                JOptionPane.showMessageDialog(mainView, "请选择要删除的行");
            }
            int option = JOptionPane.showConfirmDialog(mainView, "确认要选择删除" + selectedStudentIds.length +
                    "行吗", "确认删除", JOptionPane.YES_NO_OPTION);
            if (option == JOptionPane.YES_OPTION) {//确认 执行删除
                StudentService studentService = new StudentServiceImpl();
              boolean deleteResult = studentService.delete(selectedStudentIds);
                if (deleteResult) {
                    //重新加载表格查到最新数据
                    mainView.reloadTable();
                } else {
                    JOptionPane.showMessageDialog(mainView,"删除失败");
                }

            }

        } else if ("搜索".equals(text)) {
            mainView.setPageNow(1);
            mainView.reloadTable();

        } else if ("上一页".equals(text)) {
            mainView.setPageNow(mainView.getPageNow() - 1);
            mainView.reloadTable();
        } else if ("下一页".equals(text)) {
            mainView.setPageNow(mainView.getPageNow() + 1);
            mainView.reloadTable();
        }
    }
}

你的SQL没有在resultMap 里面描述