Foros del Web » Programación para mayores de 30 ;) » Java »

Insertar registro en MySQL

Estas en el tema de Insertar registro en MySQL en el foro de Java en Foros del Web. Tengo una duda, La siguiente inserccion si funciona pero creo que no es la forma que debo de hacerla (no me preocupa el tamaño, sino ...
  #1 (permalink)  
Antiguo 20/11/2011, 19:16
 
Fecha de Ingreso: junio-2011
Mensajes: 46
Antigüedad: 12 años, 10 meses
Puntos: 3
Insertar registro en MySQL

Tengo una duda,

La siguiente inserccion si funciona pero creo que no es la forma que debo de hacerla (no me preocupa el tamaño, sino su formato), me gustaria que alguien me confirme en caso de que lo que estoy haciendo lo haga de manera erronea:

/*
informacion adicional

int empleado, extension, idPuesto, idSucursal, idHorario, idClasificacion, idCartera, opcion, resultadoCiclo;
String nombre, apellidoP, apellidoM, telCasa, telCelular, municipio, colonia, codigoPostal, calle, numeroInt, numeroExt;
String fechaIngreso, numeroCuenta, RFC;

*/

...........
codigo para solicittar las variables y conexion a la base de datos
.............


String inserccion = "INSERT INTO empleado (nombre, apellidoP,apellidoM,telCasa,telCelular,municipio,c olonia,codigoPostal ,calle,numeroInt,numeroExt,fechaIngreso,RFC,numero Cuenta,extension,idPuesto,idSucursal,idHorario,idC lasificacion,idCartera)VALUES ('"+nombre+ "','"+ apellidoP +"','"+ apellidoM + "','" +telCasa+ "','"+telCelular+ "','"+municipio+ "','"+colonia+"','"+codigoPostal+"','"+calle+"','" +numeroInt+"','"+numeroExt+"',"+"NOW()"+",'"+RFC+" ','"+numeroCuenta+"',"+extension+","+ idPuesto+","+ '1'+","+ idHorario+","+ '1'+","+ idCartera+")";
instruccion.executeUpdate(inserccion);




Sludos.
  #2 (permalink)  
Antiguo 21/11/2011, 02:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Insertar registro en MySQL

Hola:

Aparte del formato con tanto más y concatenar String que puede ser feo, pero salvo estética apenas tiene importancia alguna, yo te aconsejaría que usaras preparedStatement. El problema con lo que tienes es si los datos los introduce un usuario. ¿Qué pasa sin pone una comilla simple como parte del nombre?. El String insercion te quedaría mal formado estilo

insert into ..... values ( 'O'hara' + .....

Eso da error. Tendrías que andar revisando todas las cadenas introducidas por el usuario para evitar este tipo de caracteres.

La forma de evitar tener que hacerlo es usar PreparedStatement http://www.chuidiang.com/java/mysql/...java-mysql.php. Aparte que el código queda más elegante.

Código java:
Ver original
  1. PreparedStatement psInsertar =  conexion.prepareStatement(
  2.             "insert into person values (null,?,?,?)");
  3.    psInsertar.setInt(1, 23); // La edad, el primer interrogante, es un entero.
  4.   psInsertar.setString(2, "Pedro"); // El String nombre es el segundo interrogante
  5.   psInsertar.setString(3, "Perez"); // Y el tercer interrogante, un String apellido.
  6.   psInsertar.exequteUpdate(); // Se ejecuta la inserción.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: mysql, registro, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:06.