Leitura de arquivos e banco de dados

4 respostas
T

Ola pessoal,

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…??

vlws

4 Respostas

crpablo

Posta o cód, ae pra galera dar uma olhada… assim no escuro fica complicado…

[]'s

T
public static void main(String[] args) throws Exception {		
		PreparedStatement stm = null;
		Connection con = null;
		String line = null;
		String sql = "INSERT INTO vest1996(insc) VALUES ('"+line+"')";
		
		try {
			con = getConnection();
			con.setAutoCommit(false);
			File file = new File("insc1996.txt");
			FileReader fr = new FileReader(file);
			BufferedReader buffer = new BufferedReader(fr);
			while((line = buffer.readLine()) != null) {
				System.out.println(line);
				stm = con.prepareStatement(sql);
				stm.executeUpdate();
			}
			con.commit();
		}
		catch(ClassNotFoundException cnf) {
			cnf.printStackTrace();
		}
		catch(SQLException sqle) {
			sqle.printStackTrace();
		}
		catch(InstantiationException ie) {
			ie.printStackTrace();
		}
		catch(IllegalAccessException iae) {
			iae.printStackTrace();
		}
		new Init();
	}

segue o codigo...

vlws

R

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.

String line = null;
String sql = "INSERT INTO vest1996(insc) VALUES ('"+line+"')";

O resultado disso sempre vai ser

"INSERT INTO vest1996(insc) VALUES ('null')"

Assim deve funcionar:

public static void main(String[] args) throws Exception {         
		PreparedStatement stm = null;  
		Connection con = null;  
		String line = null;  
		String sql = "INSERT INTO vest1996(insc) VALUES (?)";  

		try {  
			con = getConnection();  
			con.setAutoCommit(false);  
			File file = new File("insc1996.txt");  
			FileReader fr = new FileReader(file);  
			BufferedReader buffer = new BufferedReader(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(SQLException sqle) {  
			sqle.printStackTrace();  
		}  
	}

Abraco

T

caracas…nao tinha observado isso…burrao…caracas…vlws!

Criado 12 de fevereiro de 2008
Ultima resposta 13 de fev. de 2008
Respostas 4
Participantes 3