Me ajudem com Banco de Dados:

2 respostas
A
Pessoal, preciso de mais ajuda com Banco de Dados x Java... Imaginem o codigo:
import java.sql.*;

class Abdon1{
	//Informações para a conexão
	private final static String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
	private final static String url = "jdbc:odbc:AGENDA";
	
	private final static String username ="";
	private final static String password ="";
	
	//Ambiente para conexão
	private Connection con;
	private Statement stmt;
	private ResultSet rs;
	
	//Definição de dados
	private String nome = null;
	private String telefone = null;
	
	//Abrir Banco de Dados
	public void openDB(){
		
		try{
			Class.forName(driver);
			
			con = DriverManager.getConnection(url, username, password);
			stmt = con.createStatement();
			
			System.out.println("Conexao estabelecida com sucesso ");
			
		}//end try
		
		catch(ClassNotFoundException e){
			System.out.println("Erro ao carregar JDBC/ODBC pois: "+e);
			System.exit(1);
		
		}//end catch
		
		catch(SQLException e){
			System.out.println("Nao foi possivel estabelicer conexao pois: "+e);
		
		}//end catch
	}//end openDB
	
	public void setNome(String a){
		nome = a;
	}//end setNome
	
		public void setTelefone(String b){
		telefone = b;
	}//end setTelefone
	
	//Metodo que grava os dados no Banco de dados
	public void gravaDados(){
				
		System.out.println(nome);
		
		String query = "INSERT INTO AGENDA(NOME, TELEFONE) VALUES ("+nome+","+telefone+")";
		
		try{
			System.out.println("Inserindo dados...");
						
			stmt.executeUpdate(query);
		
		}//end try
		
		catch(SQLException e){
			System.out.println("Erro ao inserir dados pois: "+e);
		}//end catch
		
	}//end gravaDados
		
	
	public static void main(String args[]){
		Abdon1 a = new Abdon1();
		a.openDB();
		a.nome="Ovelha";
		a.telefone="1111111";
		a.gravaDados();
		
	}//end main
	
}//end class Jbd

A saida deste codigo é exatamente esta:
Conexao estabelecida com sucesso
Ovelha
Inserindo dados...
Erro ao inserir dados pois: java.sql.SQLExecpition: [Micro$oft] [Driver ODBC para Micro$oft Access] Parametros insuficientes. Eram esperados 1.

Lembrando que é um BD do access chamado AGENDA e que tem duas colunas na tabela: NOME e TELEFONE respectivamente....
O que vcs acham que pode ser?

Já agradecendo Abdon

2 Respostas

V

Olá,

verifique se na sua query não está faltando apóstofo ou aspas…

como por exemplo:

String query = “INSERT INTO AGENDA(NOME, TELEFONE) VALUES (”+nome+","+telefone+")";

Dica: utilize a interface PreparedStatement, ele é muito bom para inserção de parâmetros. Ex.:

PreparedStatement pstmt = con.prepareStatement(INSERT INTO AGENDA(NOME, TELEFONE) VALUES (?,?));

pstmt.setStringl(1, nome);

pstmt.setInt(2, telefone);

int result = pstmt.executeUpdate();

Espero tê-lo ajudado.
Victor

S

troque a sua query por esta:
String query = “insert into agenda(nome,telefone) values '”+nome+"’,’"+telefone+"’)";

Criado 12 de setembro de 2003
Ultima resposta 13 de set. de 2003
Respostas 2
Participantes 3