» »

java,db,insert problem

java,db,insert problem

BRBR ::

Če postavim breakpoint (net beans) na

pstmt.executeUpdate();  


spodaj, potem jasno, se execution tam ustavi.
Problem pa je da se pa pri enem insertu ne, in gre execution kar čez in v bazo ne pride nič, tudi ne pade v exception.
Insert je čisto navaden in če ga skopiram ven iz 'debug modea' in poženem v enem client programu, dela bp.

Naredil sem rebuild vsega & mysqlcheck ... (kar verjetno nima veze). Ne pomaga nič.


    public int executeSql(String sql) throws SQLException  
      {  
          boolean success = true;  
          try  
          {    
            java.sql.PreparedStatement pstmt = con.prepareStatement(sql);  
            pstmt.executeUpdate();  
          }  
          catch (SQLException ex)  
          {  
            success = false;  
              
            System.out.print("SQL error(in executeSql): ");  
            System.out.print(sql);  
            System.out.print(ex.getMessage());  
            System.out.print("problem cooming from: " + this.callingClassName);  
              
            throw new  SQLException(ex);   
          }  
          finally  
          {  
            if (!success)  
            {    
         
              this.clear(this.callingClassName);  
              return -1;//za backward compatibility  
            }  
            else  
            {  
              return 0;  
            }    
          }    
         
      }  

BRBR ::

ehh, mysql, odletelo je na nekem foreign keyu, ki je sicer zgledal čisto ok in ga že 'leta' nisem spreminjal. Zbrisal, ponovno naredil, in dela.

Zgodovina sprememb…

  • spremenil: BRBR ()

LeQuack ::

Zakaj pa ti ni nobene napake javil?
Quack !

Mavrik ::

Saj verjetno mu je vrgel exception in padel v catch ali finally blok :)
The truth is rarely pure and never simple.

BRBR ::

LeQuack je izjavil:

Zakaj pa ti ni nobene napake javil?



catch (SQLException ex)


ker tole ne ujame exceptiona, če je con = null

LeQuack ::

Za take primere potem bolje dati bolj splošen Exception catch, vsaj za debug.
Quack !

Mavrik ::

Bolj exception logging ko ti zna to povedat, ne da požira exceptione :)
The truth is rarely pure and never simple.

LeQuack ::

Saj to sem imel v mislih.
Quack !

Spura ::

LeQuack je izjavil:

Za take primere potem bolje dati bolj splošen Exception catch, vsaj za debug.

Ne. Kar naredis je if(con == null) ....
Nikakor tega, da ne znas pisat dobre kode, ne smes zdravit s catchall bloki v notranjih funkcijah. To da je con lahko null in da ta funkcija tega ne preverja je cisto programerjeva design napaka.

Pa se nekaj:
a) throw new SQLException(ex); - kva hudica je to
b) ta koda uporablja prepared statemente, hkrati pa fali cel point prepared statementov -> parametri
c) zakaj se funkcija imenuje executeSql, ubistvu pa ne mores z njo pognat selecta
d) kdo hudica dandanes uporablja prepared statements direktno?

Edit: O wow, pa ravnokar sem opazil, to grozljivo napacno logiko s success spremenljivko.

Zgodovina sprememb…

  • spremenil: Spura ()

LeQuack ::

Spura je izjavil:

LeQuack je izjavil:

Za take primere potem bolje dati bolj splošen Exception catch, vsaj za debug.

Ne. Kar naredis je if(con == null) ....
Nikakor tega, da ne znas pisat dobre kode, ne smes zdravit s catchall bloki v notranjih funkcijah. To da je con lahko null in da ta funkcija tega ne preverja je cisto programerjeva design napaka.

Pa se nekaj:
a) throw new SQLException(ex); - kva hudica je to
b) ta koda uporablja prepared statemente, hkrati pa fali cel point prepared statementov -> parametri
c) zakaj se funkcija imenuje executeSql, ubistvu pa ne mores z njo pognat selecta
d) kdo hudica dandanes uporablja prepared statements direktno?

Edit: O wow, pa ravnokar sem opazil, to grozljivo napacno logiko s success spremenljivko.


Exception lahko ujameš, shraniš nekaj debug informacij v log in jo spet vržeš, tako da ni nujno slaba zadeva. To je predvsem mišljeno za sisteme, recimo produkcijske, kjer se moraš zanašati na informacije v logih in kjer ne moraš pognati debug.
Quack !

Zgodovina sprememb…

  • spremenil: LeQuack ()

Spura ::

Ampak zakaj vrze nov exception?
Zakaj ne pise: throw ex;
Zakaj wrappa SQLException v nov SQLException, ki vsebuje 0 dodatnih informacij?
edit: najbrz ne razume throw stavka, ampak se je naucil recept:
throw new XException

Zgodovina sprememb…

  • spremenil: Spura ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] Urejanje baze z JTable

Oddelek: Programiranje
81015 (799) vonNeumann
»

Netbeans + Access

Oddelek: Programiranje
5715 (644) Napoleon II
»

[Java] Evidenca delovnega časa - Java v navezi z Accessom

Oddelek: Programiranje
393282 (2502) c0dehunter
»

[java] uporaba baze .mdb z javo

Oddelek: Programiranje
51615 (1530) gtu
»

[JAVA] mysql-connector-java in povezava z Mysql

Oddelek: Programiranje
92037 (1919) Sergio

Več podobnih tem