Значение формы вставляется в базу данных. Но при получении данных появляются все поля, кроме двух последних столбцов (результат и оценка), которые зависят от значения других столбцов. Это изображение таблицы Код показан ниже. Для вставки:
btnAddNewStudent.setOnAction(actionEvent ->
try {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
connection = DB.connectDb();
connection.setAutoCommit(false);
String query = "INSERT INTO java2(ID, StudentName, Quiz, A1,A2, Exam,result, grade) VALUES(?, ?, ?, ?,?,?,?,?)";
statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
int counter = 1;
statement.setString(counter++, studentId.getText());
statement.setString(counter++, studentName.getText());
statement.setString(counter++, quizMarks.getText());
statement.setString(counter++, assignmentOneMarks.getText());
statement.setString(counter++, assignmentTwoMarks.getText());
statement.setString(counter++, examMarks.getText());
double totalmarks = Double.parseDouble(quizMarks.getText()) * 0.05
+ Double.parseDouble(assignmentOneMarks.getText()) * 0.15
+ Double.parseDouble(assignmentTwoMarks.getText()) * 0.2
+ Double.parseDouble(examMarks.getText()) * 0.6;
String grade = "";
if (totalmarks >= 85 && totalmarks < 100) {
grade = "HD";
} else if (totalmarks >= 75 && totalmarks < 85) {
grade = "DI";
} else if (totalmarks >= 65 && totalmarks < 75) {
grade = "CR";
} else if (totalmarks >= 50 && totalmarks < 65) {
grade = "PS";
} else if (totalmarks > 50) {
grade = "Fail";
}
statement.setString(counter++, Double.toString(totalmarks));
statement.setString(counter++, grade);
statement.executeUpdate();
connection.commit();
this.alert("Save", "Successful!", Alert.AlertType.INFORMATION);
data.clear();
Вставная часть работает нормально и вставляет значение в таблицу базы данных.
И код для извлечения данных
// назначение данных вячейка таблицы
TableColumn name = new TableColumn("Name");
name.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn id = new TableColumn("Id");
id.setCellValueFactory(new PropertyValueFactory<>("id"));
TableColumn quiz = new TableColumn("Quiz");
quiz.setCellValueFactory(new PropertyValueFactory<>("quiz"));
TableColumn a1 = new TableColumn("A1");
a1.setCellValueFactory(new PropertyValueFactory<>("a1"));
TableColumn a2 = new TableColumn("A2");
a2.setCellValueFactory(new PropertyValueFactory<>("a2"));
TableColumn exam = new TableColumn("Exam");
exam.setCellValueFactory(new PropertyValueFactory<>("exam"));
TableColumn result = new TableColumn("Results");
result.setCellValueFactory(new PropertyValueFactory<>("result"));
TableColumn grades = new TableColumn("Grade");
grades.setCellValueFactory(new PropertyValueFactory<>("grades"));
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
//adding all the data in the cell of the table
table.getColumns().addAll(name, id, quiz, a1, a2, exam, result,grades);
table.setItems(data);
Connection connection = null;
connection = DB.connectDb();
ResultSet resultSet = connection.createStatement().executeQuery("select * from java2");
while (resultSet.next()) {
String studName = resultSet.getString("StudentName");
String studId = resultSet.getString("ID");
double quizMark = Double.parseDouble(resultSet.getString("Quiz"));
double a1mark = Double.parseDouble(resultSet.getString("A1"));
double a2mark = Double.parseDouble(resultSet.getString("A2"));
double examMark = Double.parseDouble(resultSet.getString("Exam"));
double totalmarks=Double.parseDouble(resultSet.getString("result"));
String grade=resultSet.getString("grade");
System.out.println(grade);
data.add(new Student(studName, studId, quizMark, a1mark, a2mark, examMark, totalmarks,
grade));
}
А код для ученического класса приведен ниже
public class Student {
private final String name;
private final String id;
private final double quiz;
private final double a1;
private final double a2;
private final double exam;
private final double result;
private final String grade;
public Student(String name, String id, double quiz, double a1, double a2,
double exam, double result, String grade) {
this.name = name;
this.id = id;
this.quiz = quiz;
this.a1 = a1;
this.a2 = a2;
this.exam = exam;
this.result = result;
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String studentName) {
studentName = this.name;
}
public String getId() {
return id;
}
public void setId(String studentId) {
studentId = this.id;
}
public double getQuiz() {
return quiz;
}
public void setQuiz(double quizMarks) {
quizMarks = this.quiz;
}
public double getA1() {
return a1;
}
public void setA1(double assignmentOneMarks) {
assignmentOneMarks = this.a1;
}
public double getA2() {
return a2;
}
public void setA2(double assignmentTwoMarks) {
assignmentTwoMarks = this.a2;
}
public double getExam() {
return exam;
}
public void setExam(double exam) {
exam = this.exam;
}
public double getresult() {
return result;
}
public void setresult(double result) {
result = this.result;
}
public String getgrade() {
return grade;
}
public void setgrade(String grade) {
grade = this.grade;
}
}