ciao!
provo a spiegare quello che mi servirebbe.
ho questa classe qui:
codice:
public class AnagConti {
private int npu;
private int codiceCliente;
private int codiceTmp;
private String tipoConto;
private String ragSoc;
private String breve;
private String partIva;
private String codFiscale;
private String via;
private String localita;
private String cap;
private String provincia;
private String nazione;
private String ie;
// GETTER AND SETTER
}
poi eseguo una query e riempio un ArrayList:
codice:
public ArrayList<AnagConti> getByTipoConto(int days) throws ClassNotFoundException, SQLException, IOException {
ArrayList<AnagConti> list = new ArrayList<>();
ReadSql readSql = new ReadSql("anag_tipo_conto.txt");
String header = readSql.getHeader();
String query = readSql.getSql();
Connection conn = DBManager.getInstance().getConnection();
try (PreparedStatement pstmt = conn.prepareStatement(query)) {
pstmt.setString(1, "1515");
pstmt.setInt(2, days);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getType());
AnagConti anagConti = new AnagConti();
anagConti.setNpu(rs.getInt("NPU"));
anagConti.setCodiceCliente(rs.getInt("CODCLIE"));
anagConti.setCodiceTmp(rs.getInt("TMP"));
anagConti.setTipoConto(rs.getString("TIPOCONTO"));
anagConti.setRagSoc(rs.getString("RAGSOC"));
anagConti.setBreve(rs.getString("BREVE"));
anagConti.setPartIva(rs.getString("PARTIVA"));
anagConti.setCodFiscale(rs.getString("CODFISCALE"));
anagConti.setVia(rs.getString("VIA"));
anagConti.setLocalita(rs.getString("LOCALITA"));
anagConti.setCap(rs.getString("CAP"));
anagConti.setProvincia(rs.getString("PROVINCIA"));
anagConti.setNazione(rs.getString("NAZIONE"));
anagConti.setIe(rs.getString("IE"));
list.add(anagConti);
}
}
return list;
}
come vedete vado a leggere un file con questo dentro:
codice:
NPU, CODCLIE, TMP, TIPOCONTO, RAGSOC, BREVE, PARTIVA, CODFISCALE, VIA,
LOCALITA, CAP, PROVINCIA, NAZIONE, IE
---
SELECT
ANAG_CONTI.NPU NPU,
SUBSTR(ANAG_CONTI.CONTO, 5) CODCLIE,
FN_B2B_TROVA_GEN_ATTR('XXL', ANAG_CONTI.NPU, 'CODICEWEB') TMP,
SUBSTR(ANAG_CONTI.CONTO, 1, 4) TIPOCONTO,
GEN_ANAG.RAGSOC RAGSOC,
GEN_ANAG.BREVE BREVE,
GEN_ANAG.PARTIVA PARTIVA,
GEN_ANAG.CODFISCALE CODFISCALE,
GEN_ANAG.VIA VIA,
GEN_ANAG.LOCALITA LOCALITA,
GEN_ANAG.CAP CAP,
GEN_ANAG.PROVINCIA PROVINCIA,
GEN_ANAG.NAZIONE NAZIONE,
PCO.XSMPCO_ITA_EST IE
FROM ANAG_CONTI
INNER JOIN GEN_ANAG ON GEN_ANAG.NPU = ANAG_CONTI.NPU
INNER JOIN XSMPCO PCO ON PCO.CONTO = ANAG_CONTI.CONTO
WHERE ANAG_CONTI.DITAGENDA = 'XXL' AND ANAG_CONTI.FVL = ' ' AND ANAG_CONTI.TIPOCONTO = 'CL'
AND PCO.UTENTE = 'XXL' AND PCO.TIPO = 'CL' AND PCO.LIVELLO = 4 AND PCO.ESERCIZIO = ?
AND (
ANAG_CONTI.CONTO LIKE 'CL00%' OR ANAG_CONTI.CONTO LIKE 'CLAG%' OR ANAG_CONTI.CONTO LIKE 'CLDS%' OR
ANAG_CONTI.CONTO LIKE 'CLFD%' OR ANAG_CONTI.CONTO LIKE 'CLFR%' OR ANAG_CONTI.CONTO LIKE 'CLMT%' OR
ANAG_CONTI.CONTO LIKE 'CLST%'
)
AND TO_CHAR(ANAG_CONTI.TSTP_MOD, 'YYYYMMDD') BETWEEN TO_CHAR(SYSDATE - ?, 'YYYYMMDD') AND TO_CHAR(SYSDATE, 'YYYYMMDD')
ORDER BY ANAG_CONTI.CONTO
la seconda parte è la query.
la prima parte la vorrei usare come "mapping", e vorrei usare le varie vocie al posto dei vari rs.getXXX.
il problema è che non so come indicare quando è un getInt e quando un getString.
l'unica soluzione che mi è venuta in mente è mettere tutto come String in AnagConti, ma non mi sembra corretto!
qualche idea?