Error netbeans y MariaDB Column count doesn't match value count at row 1
Hola buenas tardes estoy haciendo un programa que me debe agregar los datos de personas x y sus mascotas.
el problema es que para eliminar alguna persona de la base de datos. necesito hacer una primary key. y cuando hago la columna " id " y " auto_increment".
el problema es que apenas haces esta columna extra. el netbeans me falla.
en el fondo son 6 columnas la 7 es la id primary key. que deberia agregarse sola, quizas me falta un codigo que haga que llame el numero de la base de datos al
pst.setString(7, Algun codigo que llame la primary key de la base);
algo así debe ser el error
try {
if(conn == null) {
Class.forName("com.mysql.jdbc.Driver");
conn = (Connection) DriverManager.getConnection(uri, user, pass);
}
String sql = "insert into duenomascota values (?,?,?,?,?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, ObjDueño.getNombre());
pst.setString(2, ObjDueño.getApellido());
pst.setShort (3, ObjDueño.getEdad());
pst.setString(4, String.valueOf(ObjDueño.getSexo()));
pst.setString(5, ObjDueño.getNombremascota());//ObjMascota.getNombre());
pst.setString(6, String.valueOf(ObjDueño.getSexomascota()));
pst.execute();
//EL ERROR ESTA ANTES DE ESTO. como son 6 columnas. y al agregarle la extra que es el id. me falla. espero que puedan ayudarme
if (BtnM.isSelected()) {
JOptionPane.showMessageDialog(null, "El Dueño " + ObjDueño.getNombre() + " fue agregado exitosamente!");//Mensaje dueño creado
} else
if (BtnF.isSelected()) {
JOptionPane.showMessageDialog(null, "La Dueña " + ObjDueño.getNombre() + " fue agregada exitosamente!");//Mensaje dueña creada
}
//return conn;
}//Fin TRY
catch(ClassNotFoundException e) {
System.out.println("Exepcion de driver de MySQL: " + e);
//return null;
}
catch(SQLException e){
System.out.println("Exepcion de SQL: " + e);
//return null;
}
muchas gracias espero que puedan ayudarme y perdon si me equivoque de Lugar donde publicar esto. muchas gracias de ante mano
les pongo el programa adjunto. para que lo aprecien mejor.
- Inicie sesión o regístrese para enviar comentarios
Columna AUTO_INCREMENT
Cuando se realiza un inserción en la tabla se debe de mandar los parámetros completos; es decir si la tabla contiene 3 columnas se deben mandar los 3 parámetros en la query Insert, aunque la columna ID sea auto incrementable; ya que eso solo determina el tipo de estrategia de generación para la columna.
Supongamos que tienes la siguiente tabla "tabla1" con las siguientes columnas:
La query para la insercion sería:
INSERT INTO tabla1 VALUES(0,25,'Adrian Alonso');
INSERT INTO tabla1 VALUES(0,30,'Jose');
INSERT INTO tabla1 VALUES(0,10,'Maria');
El resultado seria:
1 25 Adrian Alonso
2 30 Jose
3 10 Maria
Que raro
Que raro sus inserts, la última vez que maneje SQL recuerdo que el insert se realizaba asi: 'insert into nombreTabla(columna, columna, ...) values (valor, valor, ...)'
Insert
Los nombres de las columnas no son necesarias; al menos no en la versión que utilizo Server version: 5.5.34 MySQL Community Server (GPL).
Pero puedes probar y comentas tus resultados.
Saludos.