Dúvidas com MySQL Connector Java 5.1.17 na inserção de dados na tabela. [RESOLVIDO]

3 respostas
F

Bom dia,

meu primeiro post no GUJ e to com um problema na hora de inserir dados na tabela clientes ele esta acusando este erro

Exception in thread "main" java.sql.SQLException: Column count doesn't match value count at row 1
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1709)
	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1628)
	at bancodedados.Conexao.inserirClientes(Conexao.java:32)
	at bancodedados.Conexao.main(Conexao.java:14)

e não insere os dados se puderem ajudar agradeço.

Segue o código abaixo:

package bancodedados;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Conexao {
	
	public static void main(String[] args) throws Exception {
		Conexao c = new Conexao();
		Connection conn = c.abrirConexaoMySQL();
		c.inserirClientes(conn, "10","Jeremias", "Varginha", "M");
		c.imprimirClientes(conn);
	}
	
	public Connection abrirConexaoMySQL() throws Exception {
//		Driver:
		Class.forName("com.mysql.jdbc.Driver");
//		Conexão java.sql.DriverManager
		String url = "jdbc:mysql://127.0.0.1:3306/locadora";
		String usr = "root";
		String senha = "123";
		Connection conn = DriverManager.getConnection(url,usr,senha);
		return conn;
	}
	
	public void inserirClientes (Connection conn, String id, String nome, String cidade, String sexo) throws SQLException {
		String insert = "insert into clientes (cli_nome, cli_cidade, cli_sexo) values ('"+id+"','"+nome+"','"+cidade+"','"+sexo+"')";
		Statement stmt = conn.createStatement();
		stmt.executeUpdate(insert);
	}
	
	public void imprimirClientes (Connection conn) throws SQLException {
		String sql = "select * from clientes";
		Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery(sql);
		while(rs.next()) {
			int id = rs.getInt("cli_id");
			String nome = rs.getString("cli_nome");
			String cidade = rs.getString("cli_cidade");
			String sexo = rs.getString("cli_sexo");
			System.out.println(id +" - "+nome+" - "+cidade+" - "+sexo);
		}
	}

}

3 Respostas

leoramos

Teu problema não é a conexão. Teu problema é que na tua query estás passando 4 parâmetros para 3 valores.
Retira o id (que provavelmente é auto-gerado), que deve funcionar.
Se não for, precisas declarar o id onde declaras os outros campos.
Abraço!

F

Credo que vergonha de mim.

Vlw - Resolvido

leoramos

HAHAHAHA relaxa, cara!
Só põe um [RESOLVIDO] no título do teu tópico, daí, blz?
Valeu!

Criado 27 de julho de 2011
Ultima resposta 27 de jul. de 2011
Respostas 3
Participantes 2