ciao!
provo a spiegare quello che mi servirebbe.
ho questa classe qui:
poi eseguo una query e riempio un ArrayList: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 }
come vedete vado a leggere un file con questo dentro: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; }
la seconda parte è la query.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 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?

Rispondi quotando