gpt4 book ai didi

java - 从 MYSQL 上的 ArrayList 加载信息

转载 作者:行者123 更新时间:2023-12-01 18:01:10 28 4
gpt4 key购买 nike

我创建了一个带有一些税务信息的JTable,因此,我使用Java来保存这些信息,但有些字段已在MySQL上保存为ArrayList。因此,当我尝试将此信息加载到我的 JTable 时,它看起来很奇怪,有很多重复的行:

JTbale Loaded

Informations On MySQLstrong text

这是我从 MySQL 加载信息的代码:

DAO方法:

public PedidoCompraBeans pesquisaPedido (PedidoCompraBeans mod){
conectaPedido.conecta();
conectaPedido.executeSQL("Select * from compras_pedidocompra where pedidoNumero like '"+mod.getPesquisPedido()+"'");
try{
conectaPedido.resultset.first();

mod.setEstabeleFatura(conectaPedido.resultset.getString("estabeleceFaturamento"));
mod.setEnderecoFatura(conectaPedido.resultset.getString("enderecoFaturamento"));
mod.setMunicipioFatura(conectaPedido.resultset.getString("municipioFaturamento"));
mod.setCnpjFatura(conectaPedido.resultset.getString("cnpjfaturamento"));
mod.setIeFatura(conectaPedido.resultset.getString("ieFaturamento"));
mod.setEstabeleCobranca(conectaPedido.resultset.getString("estabeleceCobranca"));
mod.setEnderecoCobranca(conectaPedido.resultset.getString("enderecoCobranca"));
mod.setMuniciioCobranca(conectaPedido.resultset.getString("municipioCobranca"));

the rest of seach method continue.....

向JTable发送信息的方法:

 public class TabelaPedido{

public String ordemNumero;
public String codEstoque;
public String quantidade;
public String tipUnidad;
public String descricaoItem;
public String dataPrazPedido;
public String precoUnit;
public String valorDesc;
public String icmsProd;
public String ipiissProd;
public String TotalSemImp;
public String totalComImp;
public String valorIcmsProd;
public String valorIpiIssProd;

public TabelaPedido(){

mod.setPesquisPedido(pesquisaPedido.getText());
PedidoCompraBeans model = control.pesquisaPedido(mod);

this.ordemNumero = model.getOdemNumero();
this.codEstoque = model.getCodEstoque();
this.quantidade = model.getQuantidade();
this.tipUnidad = model.getUnidade();
this.descricaoItem = model.getDescricaoItem();
this.dataPrazPedido = model.getPrazoEntrega();
this.precoUnit = model.getPrecoUnitario();
this.valorDesc = model.getValorDesconto();
this.icmsProd = model.getIcmsProduto();
this.ipiissProd = model.getIpiissProduto();
this.TotalSemImp = model.getTotalProdutoSemImpostos();
this.totalComImp = model.getTotalProdutoComImpostos();
this.valorIcmsProd = String.valueOf(model.getIcms());
this.valorIpiIssProd = String.valueOf(model.getValorIPIISS());
}
}

public ArrayList exibeItens(){

ArrayList<TabelaPedido> list = new ArrayList<TabelaPedido>();

TabelaPedido item1 = new TabelaPedido();
TabelaPedido item2 = new TabelaPedido();
TabelaPedido item3 = new TabelaPedido();
TabelaPedido item4 = new TabelaPedido();
TabelaPedido item5 = new TabelaPedido();
TabelaPedido item6 = new TabelaPedido();
TabelaPedido item7 = new TabelaPedido();
TabelaPedido item8 = new TabelaPedido();
TabelaPedido item9 = new TabelaPedido();
TabelaPedido item10 = new TabelaPedido();
TabelaPedido item11 = new TabelaPedido();
TabelaPedido item12 = new TabelaPedido();
TabelaPedido item13 = new TabelaPedido();
TabelaPedido item14 = new TabelaPedido();

list.add(item1);
list.add(item2);
list.add(item3);
list.add(item4);
list.add(item5);
list.add(item6);
list.add(item7);
list.add(item8);
list.add(item9);
list.add(item10);
list.add(item11);
list.add(item12);
list.add(item13);
list.add(item14);
return list;
}

public void adicionaItensTabela(){

DefaultTableModel mode = (DefaultTableModel) tabelProduto.getModel();
ArrayList<TabelaPedido> list = exibeItens();
Object rowData[] = new Object[14];

for(int a = 0; a < list.size(); a++){

rowData[0] = list.get(a).ordemNumero;
rowData[1] = list.get(a).codEstoque;
rowData[2] = list.get(a).quantidade;
rowData[3] = list.get(a).tipUnidad;
rowData[4] = list.get(a).descricaoItem;
rowData[5] = list.get(a).dataPrazPedido;
rowData[6] = list.get(a).precoUnit;
rowData[7] = list.get(a).valorDesc;
rowData[8] = list.get(a).icmsProd;
rowData[9] = list.get(a).ipiissProd;
rowData[10] = list.get(a).TotalSemImp;
rowData[11] = list.get(a).totalComImp;
rowData[12] = list.get(a).valorIcmsProd;
rowData[13] = list.get(a).valorIpiIssProd;

mode.addRow(rowData);
}
}

我错了什么?

最佳答案

在 pesquisaPedido 中,您执行 SQL 查询,但看起来您只从结果集中读取了第一行并返回它。由于完全相同的查询很可能始终以相同的顺序返回行,因此此方法将始终返回完全相同的数据行

这意味着每次调用构造函数 TabelaPedido() 都会为您的 ArrayList 创建完全相同的元素。

这里的解决方案首先是 pesquisaPedido 应该返回列表中 sql 查询的所有行,并且在创建 TabelaPedido 对象时,您应该通过迭代该列表来实现这一点。构造函数应采用 PedidoCompraBeans 作为参数,以便您在外部进行循环。

exibeItens,这个方法我不太懂。数据库表中总是 14 行吗?

关于java - 从 MYSQL 上的 ArrayList 加载信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60623231/

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