Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    132

    query su tabelle tipo numeric

    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.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    268
    meglio il secondo, a livello di inserimento dei dati nel db non hai grossi problemi se lo definisci come testo, però se metti un "numero" tipo 01 che succede? meglio prevenire errori ed essere il più precisi possibili.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    132
    molte grazie, immaginavo, quindi dici che a livello di integrità del Db non succede nulla, al limite va in errore e non scrive il record ?

    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    268
    si non scrive o se scrive poi da programma non riesci a leggere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.