estou tentando gravar a saida da leitura de alguns arquivos no banco de dados, mas por algum motivo ele le o arquivo normalmente, ou seja, fiz um teste com o System.out.print e ele le o arquivo normal…mas na hora de gravar os valores ele grava null…alguem tem alguma idea do que pode ser…??
Posta o cód, ae pra galera dar uma olhada… assim no escuro fica complicado…
[]'s
T
thats
publicstaticvoidmain(String[]args)throwsException{PreparedStatementstm=null;Connectioncon=null;Stringline=null;Stringsql="INSERT INTO vest1996(insc) VALUES ('"+line+"')";try{con=getConnection();con.setAutoCommit(false);Filefile=newFile("insc1996.txt");FileReaderfr=newFileReader(file);BufferedReaderbuffer=newBufferedReader(fr);while((line=buffer.readLine())!=null){System.out.println(line);stm=con.prepareStatement(sql);stm.executeUpdate();}con.commit();}catch(ClassNotFoundExceptioncnf){cnf.printStackTrace();}catch(SQLExceptionsqle){sqle.printStackTrace();}catch(InstantiationExceptionie){ie.printStackTrace();}catch(IllegalAccessExceptioniae){iae.printStackTrace();}newInit();}
segue o codigo...
vlws
R
rodrigolufer
Essas linhas geram o problema mencionado.
Voce iniciou um objeto String com null e logo em seguida iniciou outro objeto String (SQL) concatenando com o primeiro.
Stringline=null;Stringsql="INSERT INTO vest1996(insc) VALUES ('"+line+"')";
O resultado disso sempre vai ser
"INSERT INTO vest1996(insc) VALUES ('null')"
Assim deve funcionar:
publicstaticvoidmain(String[]args)throwsException{PreparedStatementstm=null;Connectioncon=null;Stringline=null;Stringsql="INSERT INTO vest1996(insc) VALUES (?)";try{con=getConnection();con.setAutoCommit(false);Filefile=newFile("insc1996.txt");FileReaderfr=newFileReader(file);BufferedReaderbuffer=newBufferedReader(fr);stm=con.prepareStatement(sql);while((line=buffer.readLine())!=null){System.out.println(line);stm.setString(1,line);stm.executeUpdate();stm.clearParameters();}con.commit();}catch(SQLExceptionsqle){sqle.printStackTrace();}}
Abraco
T
thats
caracas…nao tinha observado isso…burrao…caracas…vlws!