Por que a tabela é criada e é gerado um erro?

2 respostas
Silas_Rodrigues

E ai galera, beleza?

Baseado no código abaixo:

public static void criarTabelas() {
		
		String sqlPessoa = "";
		String sqlTelefone = "";
		PreparedStatement st;
		
		try {
			
			sqlPessoa = "create table Pessoa(id integer, nome varchar(30))"; 
			st = con.prepareStatement(sqlPessoa);
			st.executeUpdate();		
			con.commit();
			
		}
		
		catch(SQLException e) {
			
			System.out.println("Erro ao executar:" + sqlPessoa);
			
		}
		
		try {
			
			sqlTelefone = "create table Telefone(id integer, numero varchar(30))"; 
			st = con.prepareStatement(sqlTelefone);
			st.executeUpdate();		
			con.commit();
			
		}
		
		catch(SQLException e) {
			
			System.out.println("Erro ao executar:" + sqlTelefone);
			
		}
		
		System.out.println("tabelas criadas com Sucesso...");
	
	}

Alguém poderia identificar o problema dos println’s dos catch’s serem impressos na console? Tipo, se ele é impresso é porque deu algum problema na criação das tabelas, mas as tabelas são criadas no banco quando executo a função acima, logo não tem pra que cair nos catch’s. Sou novo em jdbc, posso está fazendo algo de errado, mas a meu vê o código está certo e não era para imprimir os println’s dos catch’s.

Quem puder ajudar, agradeço.

UP! :smiley:

2 Respostas

bigjoe

Qual a SQLException que é devolvida?

Pergunta: as SQLs de criação de banco já foram testadas no banco de dados?

Silas_Rodrigues

Pois então, a SQLException é: Can’t call commit when autocommit=true

Comentei a linha que tem con.commit(); e não lançou mais essa exceção. A dúvida é: Como eu desabilito o auto-commit (deixando como false)?

As SQL’s rodaram de boa no banco.

Agora não cai mais no catch. O problema foi solucionado, mas como faço pra deixar o auto-commit como sendo falso?

Então é isso…

Obrigado! :slight_smile:

Criado 28 de fevereiro de 2010
Ultima resposta 28 de fev. de 2010
Respostas 2
Participantes 2