gpt4 book ai didi

java - 将 SQL 数据库中的信息写入列表

转载 作者:行者123 更新时间:2023-12-02 07:21:02 25 4
gpt4 key购买 nike

我正在做作业,但无法完成其中的一个程序...

我有 JTable 类,它在我的代码中创建表格...我必须编写从 sql 数据库获取信息并将其写入列表的方法

方法必须类似于:

public static List selectAnswers(int QuestionId) 抛出 SQLException、IOException

以下代码是我自己写的:

public static List<AnswerRow> selectAnswers (int questionId) throws SQLException, IOException
{
Connection veza = connectToDatabase();

Properties query = new Properties();

AnswersTableModel atm = new AnswersTableModel();

String selectAnswers = query.getProperty("selectAnswers");

PreparedStatement preparedStatement = veza.prepareStatement(selectAnswers);

ResultSet rs = preparedStatement.executeQuery();

List<AnswerRow> lista = new ArrayList<AnswerRow>();

while(rs.next()){

String answerText = rs.getString("answerText");
boolean isRight = rs.getBoolean("answerRight");

?????????????????????????????????????????????????


}

closeConnectionToDatabase(veza);

return lista;
}

????字段丢失,我不知道该写什么来将信息 answeText 和 isRight 写入 AnswerRow 类、AnswerTableModel、列表...

制作 JTable 的代码(并且是给我的,我的老师不能更改)在这里:

package hr.tvz.java.deveti.model;

import java.util.List;
import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

public class AnswersTableModel extends AbstractTableModel {

private Object[][] answers;
private String[] columnNames;

public AnswersTableModel (String[] colNames){
super();
columnNames = colNames;
}

public AnswersTableModel() {
super();
this.columnNames = new String[AnswerRow.TABLE_COLUMNS];
this.columnNames[0] = "Odgovor";
this.columnNames[1] = "Točan/Netočan";
}

public java.lang.Class<?> getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}

public int getColumnCount() {
return AnswerRow.TABLE_COLUMNS;
}

public int getRowCount() {
if (answers != null)
return answers.length;
else
return 0;
}

public Object getValueAt(int row, int column) {
return answers[row][column];
}

public String getColumnName(int column){
return columnNames[column];
}

public void setValueAt (Object aValue, int rowIndex, int columnIndex){
answers[rowIndex][columnIndex] = aValue;
}

public boolean isCellEditable (int rowIndex, int columnIndex){
return true;
}

public void addNewRow(){
Object[] o = new Object[] {"", false};
if ((answers == null) || (answers.length == 0)) {
answers = new Object[][] {o};
}else{
Object[][] answersTemp = new Object[answers.length + 1][AnswerRow.TABLE_COLUMNS];
for (int i = 0; i < answers.length; i++)
answersTemp[i] = answers[i];
answersTemp[answersTemp.length - 1] = o;
answers = answersTemp;
}
}

public List<AnswerRow> getAnswerRows() {
List<AnswerRow> list = new ArrayList<>();
for (Object[] oRow : answers) {
AnswerRow row = new AnswerRow();
row.setAnswer((String) oRow[0]);
row.setRight((boolean) oRow[1]);
list.add(row);
}

return list;
}

public void setAnswerRows(List<AnswerRow> answerRows){
if (answerRows.size() == 0 ) {
this.answers = new Object[0][0];
return;
}
this.answers = new Object[answerRows.size()][AnswerRow.TABLE_COLUMNS];
for (int i = 0; i < answers.length; i++){
answers[i][0] = answerRows.get(i).getAnswer();
answers[i][1] = answerRows.get(i).isRight();
}
this.columnNames = new String[AnswerRow.TABLE_COLUMNS];
this.columnNames[0] = "Odgovor";
this.columnNames[1] = "Točno/Netočno";
}

public class AnswerRow {
public static final int TABLE_COLUMNS = 2;
private boolean isRight;
private String answer;

public AnswerRow(){
answer = "";
isRight = false;
}

public AnswerRow(String answer, boolean isRight){
this.answer = answer;
this.isRight = isRight;
}

public String getAnswer() {
return answer;
}

public void setAnswer(String answer){
this.answer = answer;
}

public boolean isRight(){
return isRight;
}

public void setRight(boolean isRight){
this.isRight = isRight;
}
}
}

请帮助我..谢谢!

最佳答案

List<AnswerRow> lista = new ArrayList<AnswerRow>();

while(rs.next()){

String answerText = rs.getString("answerText");
boolean isRight = rs.getBoolean("answerRight");

//Create AnswerRow instance and set values to it and Add it to list.
AnswersTableModel .AnswerRow ansrow = atm.new AnswerRow();
ansrow.setAnswer(answerText);
ansrow.setRight(isRight);

//Add it to list.
lista.add(ansrow);
}

我不确定的一件事是为什么你有 AnswersTableModel 以及你用它做什么。

关于java - 将 SQL 数据库中的信息写入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14241772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com