En este grupo En todos

Foro de Java



JDateChooser codigo para guardar fecha en MySql

eduardo jose
Ingeniero de sistemas universidad anto...
Escrito por Eduardo Jose Mestra
el 08/12/2010

Saludos AYUDAAAA.

de guardar la fecha en una tabla perteneciente a una base de datos de MySql me sale error el la consulta cre que me falta algo para poder guardar depronto puede ser el formato de MySql.
este es el codigo del boton GUARDAR.

wt.event.ActionEvent evt) {
// TprivateODO add your handling code here:

try{
Class. ForName("com.mysql.jdbc. Driver");
Class. ForName("com.mysql.jdbc. Driver");
Connection conn=(Connection) DriverManager. GetConnection(url,usuario, contraseña);
Statement consulta=(Statement) conn. CreateStatement();


consulta. ExecuteUpdate("insert into fecha values('"+t1. GetText()+"','"+t2. GetDate()+"')");
JOptionPane. ShowMessageDialog(null,"fecha guardada Adicionada") ;
b1. DoClick();


} catch(SQLException e){
JOptionPane. ShowMessageDialog(null,"Error en la consulta") ;
} catch(ClassNotFoundException e){
JOptionPane. ShowMessageDialog(null,"Error en la Base de Datos") ;
}

}

Carlos Torres
Ingeniería en comptación universidad j...
Escrito por Carlos Torres
el 14/12/2010

Lo que pasa es que tienes mal la sintaxis del INSERT, debes hacerlo de la siguiente forma:

INSERT INTO nombreTabla (nombrecampo1, nombrecampo2) VALUES (valor1,valor2)

Tienes qu tener mucho cuidado con las comillas " ", y también si la BD está en Linux debes colocar el nombre de los campos tal cual (Mayusculas y Minusculas) como están definfidos en MYSQL, es decir, no es lo mismo nombretabla que NombreTabla.


Saludos!







Escrito por Patty Aracelly Delgado Davila
el 15/12/2010

1. Si tu fecha la estas jalando de jcalendar osea muchos demos que hay en web, ese formato tienes que cambiar al formato que te acepta el mysql, asi

Date date=calendario. Getdate();
simpledateformat format2=new simpledateformat("yyyy-mm-dd");
string fecha = format2. Format(date);

///calendario es mi calendario que es un jar de donde estoy jalando la fecha

///final mento en ves de emviar ""+t1. Gettext(), emvio la cadena fecha y listo.

Eduardo Jose Mestra
Ingeniero de sistemas universidad anto...
Escrito por Eduardo Jose Mestra
el 16/12/2010

E buscado los demas de jdatachooser y no e podido encontrar nada.

Carlos Torres
Ingeniería en comptación universidad j...
Escrito por Carlos Torres
el 16/12/2010

Eduardo, revisa tu sentencia INSERT, te falta indicar los campos de la tabla en donde vas a insertar los datos '"+t1. GetText()+"','"+t2. GetDate()+"')" y mosca con las comillas!

Eduardo Jose Mestra
Ingeniero de sistemas universidad anto...
Escrito por Eduardo Jose Mestra
el 17/12/2010

Carlos gracias por la observacion pero lo que me dices tenes razon ya la arregle pero esa sintaxis no me soluciona lo del formato del jdatechooser
no me guarda la fecha. Hay que hacer la conversion y esa es la parte que no se como.
si hay que crear una clase aparte.
saludos

eduardo

Carlos Torres
Ingeniería en comptación universidad j...
Escrito por Carlos Torres
el 17/12/2010

Primero lo Primero: En la sentencia INSERT coloca las fechas a mano ("2010-12-01 00:00:00"), y prueba que esa rutina de insertar esté bien.

Segundo: Yo cree la siguiente función (fechaMySQL) la cual es miembro de una clase (ManejoFechas) tambien ideada por mi , a la cual le paso como parámetro un objeto JDateChooser , este mismo código lo podrías agregar en tu rutina original, y sino lo dejas como yo lo tengo. Simplemente lo que hace, es extraer los dias, mes, años, del objeto JDateChooser y te devuelve un String con el formato para MySQL. Ojo: Pendiente con el tipo de dato DateTime o Date, si es DateTime lo dejas tal cual como está, y el MySQL le coloca el TIME como "00:00:00". Y si es Date lo graba yyyy-mm-dd.

public class ManejoFechas {

public static String fechaMySQL(JDateChooser miJDate){

DecimalFormat sdf = new DecimalFormat("00");
int anio = miJDate. GetCalendar(). Get(Calendar. YEAR);
int mes = miJDate. GetCalendar(). Get(Calendar. MONTH) + 1;
int dia = miJDate. GetCalendar(). Get(Calendar. DAY_OF_MONTH);

return anio+"/"+sdf. Format(mes)+"/"+sdf. Format(dia);
}

}

Y la sentencia INSERT quedaría algo así:

consulta. ExecuteUpdate("insert into fecha values('"+t1. GetText()+"','"+ManejoFechas
. FechaMySQL(jDateChooserNacimiento)+"')");

Eduardo Jose Mestra
Ingeniero de sistemas universidad anto...
Escrito por Eduardo Jose Mestra
el 20/12/2010

Hola carlos

me gustaria saber tu direccion de email
para enviarte un pequeño demo en netbeans
donde hay un jdatechooser para validar
te agradezco la ayuda.


mi correo es edujomes@hotmail. Com

saludos.

Eduardo Jose Mestra
Ingeniero de sistemas universidad anto...
Escrito por Eduardo Jose Mestra
el 08/02/2011

Al parecer sigue la duda sobre jdatechooser
y nadie me a podido ayudar

saludos

Carlos Torres
Ingeniería en comptación universidad j...
Escrito por Carlos Torres
el 08/02/2011

Jajajajaja, todavía Eduardo? , que te falta?

Eduardo Jose Mestra
Ingeniero de sistemas universidad anto...
Escrito por Eduardo Jose Mestra
el 15/02/2011

Hombre carlos ahora la guardo pero tengo que formatearla para que solo me guarde
la fecha y no los segundos.

Carlos Torres
Ingeniería en comptación universidad j...
Escrito por Carlos Torres
el 16/02/2011

Pero si te guarda los segundos no importa, trabajas solo con las fecha, sino, en la tabla de mysql cambias el tipo de dato de date/time a date solamante.

Diego Gamboa
Ingenieria de sistemas universidad nac...
Escrito por Diego Gamboa
el 06/03/2011

Saludos Cordiales Eduardo!


No es necesario que cambies el tipo de Dato, de seguro lo tienes en Timestamp, lo que tienes que hacer es que en la sentencia sql, le das un cast a esa columna, asi : select cast(Nombre_columna as Date) as Nombre_columna from.... , espero te sea util!

Janeth Garcia
Veracruz, México
Escrito por Janeth Garcia
el 04/05/2012

Disculpa yo tengo un problema con jdate chooser estoy realizando una aplicacion de escritorio con conexion a bd y declare en mysql como varchar mi dato de fecha y lo guardo con getText() y si lo guarda, el detalle esta cuando realizo una consulta no se como leerlo

Diego Gamboa
Ingenieria de sistemas universidad nac...
Escrito por Diego Gamboa
el 05/05/2012

Saludos Cordiales Janeth;

Tiempo sin entrar en mis debates jejeje, bueno un campo tipo date debe ser capturado por el objeto Resulset en su metodo getDate('Nombre_Columna'); donde Nombre_Columna es una columna de tu tabla del tipo Date; asi mismo capturas las otras columnas, dependiendo del tipo de dato, es decir; si tu columna es tipo Varchar deberas ejecutar el metodo getString('Nombre_Columna'), esto permite que java capture valores compatibles con las clases en tiempo de ejecucion, para instanciar un objeto del tipo ResulSet necesitas tambien un Objeto del tipo Statement, dado que este ejecutara el query con su metodo executeQuery('Sql'); esta funcion retorna a su vez la instancia del objeto ResultSet. Espero me haya explicado. Saludos Mexico.

Diego Gamboa
Ingenieria de sistemas universidad nac...
Escrito por Diego Gamboa
el 05/05/2012

Ah otra cosa, lo recomendable es que utilices un campo fecha como date no como varchar, esto podria no ayudarte si decidieras ejecutar consultas con rangos de fechas, recuerda que las bases de datos te facilitan funciones muy potentes para procesar columnas del tipo date, time o timestamp entre otras... Y puedes de igual manera manejarlo como String en java al ejecutar las sentencias sql, solo cuidando el formato que acepta la configuracion de tu bd para este campo date.

Andre Alvarez Salas
Atlántico, Colombia
Escrito por Andre Alvarez Salas
el 06/06/2012

Como declaro un jdatechooser en netbean






Rogelio Lopez
Estado de México, Mé...
Escrito por Rogelio Lopez
el 09/09/2012

Ola mira para el jdateChooser

Try {


String formato = "yyyy-MM-dd"; // aqui pon el formato que quieras

//Date es de la libreria java.util.Date;

Date fechaini = jdateChooser. GetDate(); // aqui opten la fecha del calendario


SimpleDateFormat sdf = new SimpleDateFormat(formato); //pasas el formato k le asignaste a SimpleDateFormat tambien es una libreria de netbeans

String fecha_inicio = String. ValueOf(sdf. Format(fechaini));

} catch (Exception e) {

JOptionPane. ShowMessageDialog( null, "Al menos elija una FECHA DE INICIO VALIDA " , "Error..! " , JOptionPane. ERROR_MESSAGE);


}

Espero aberles ayudado saludos a es Formato sql server 2008 y eduardo te aconsejo programes bajo un modelo es mas eficiente y tendras menos errores y seran facil de encontrar saludos

Andrea Colín
Jalisco, México
Escrito por Andrea Colín
el 01/02/2016

String sql="AQUI LA CONSULTA DE SQL INSERT INTO ";

PreparedStatement pst= cn. PrepareStatement(sql);
pst. SetDate(1, new java.sql.Date(ELNOMBRE DE TU jDateChooser. GetDate(). GetTime()));

Ya pasaron muchos años pero espero te sirva de algo.

Andrea Colín
Jalisco, México
Escrito por Andrea Colín
el 01/02/2016

El atributo en mysql esta declarado como Date