Ciao a tutti, ho del codice che credevo mi desse errore ed invece funziona.
Mi viene il dubbio di non aver capito qualcosa :
Creo un DB con campi numeric, pensavo che la query dovesse essere del tipo "setInt" e di dover convertire io le stringhe in int.
Invece, se la stringa è convertibile fa tutto da solo con "setString", ovviamente se la stringa contiene caratteri da errore.
Uso driver org.apache.derby.
codice:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
String url = "jdbc:derby:SYSTEM/infoDb;create=true;user=**;password=**";
Connection conn = DriverManager.getConnection(url);
conn.setAutoCommit(false);
java.sql.Statement exe = conn.createStatement();
String QueryString = "CREATE TABLE APP.TABELLA1" + "( ID NUMERIC(10),COD VARCHAR(50),NOME NUMERIC(10))";
int rs1 = exe.executeUpdate(QueryString);
String id="1";
String cod="CODICE";
String nome= "1";
String QueryString2 = "insert INTO APP.TABELLA1 (ID,COD,NOME) values(?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(QueryString2);
pstmt.setString(1, id);
pstmt.setString(2, cod);
pstmt.setString(3, nome);
pstmt.executeUpdate();
Il mio dubbio è, se non sia più corretto fare una cosa del genere
codice:
int id=Integer.parseInt("1");
String cod="CODICE";
int nome=Integer.parseInt("1");
String QueryString2 = "insert INTO APP.TABELLA1 (ID,COD,NOME) values(?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(QueryString2);
pstmt.setInt(1, id);
pstmt.setString(2, cod);
pstmt.setInt(3, nome);
pstmt.executeUpdate();
o è ininfluente ?
Grazie.