Estoy tratando yo de la tienda fecha y hora actuales de JDateChooser a la base de datos mysql, pero solo las inserciones de la fecha de hoy y el tiempo actual es de 00:00:00

  java.util.Date dt1,dt2;     
  String n=name.getText();
  String i=id.getText();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  dt1=jDateChooser1.getDate();
  dt2=jDateChooser2.getDate();
  String strdtver1=(String) sdf.format(jDateChooser1.getDate());
  String strdtver2=(String) sdf.format(jDateChooser2.getDate());

  try {
     Class.forName("com.mysql.jdbc.Driver");
     Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/testing","root","");
    Statement stmt=con.createStatement();
    String sql="Insert into ss values('"+(n)+"','"+(strdtver1)+"','"+(strdtver2)+"','"+(i)+"');";
    stmt.executeUpdate(sql);
    JOptionPane.showMessageDialog(this, "RECORD ENTERED SUCCESSFULLY");

  } catch(Exception e) {
      JOptionPane.showMessageDialog(this,e.getMessage());
  }

Es un programa para almacenar check in & fecha de salida y la de tiempo.
El tipo de datos en mysql es de tipo datetime para Check_in y Check_out.
Los datos ingresados en mi sql en la columna Check_in es 2014-10-27 00:00:00. La fecha actual es correcto, pero quiero insertar hora actual en lugar de 00:00:00.Por favor me ayude.

  • Se están abiertas para la inyección de SQL. Por favor, utilice un PreparedStatement lugar

4 Comentarios

  1. 4

    Su formato de las fechas que usted obtiene de widgets mediante SimpleDateFormat, pero sólo se utiliza un modelo de fecha como una cadena de formato; para la fecha y hora de la cadena de formato compatible con mysql, uso:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  2. 0

    Usted no debe convertir su Fecha de objetos en Cadenas. En su lugar, pasar a un PreparedStatement:

    try (PreparedStatement statement =
        con.prepareStatement("insert into ss values ?, ?, ?, ?")) {
    
        statement.setString(1, n);
        statement.setDate(2, dt1);
        statement.setDate(3, dt2);
        statement.setString(4, i);
    
        statement.executeUpdate();
    }

    También, mediante un PreparedStatement es muy recomendable cuando el almacenamiento de datos de usuario, ya que impide un grave ataque malintencionado vector conocido como La Inyección de SQL. (Imagino que si el usuario ingresa su nombre como ', null, null, null; delete from ss; insert '.)

  3. 0
       public void calendarExpale(){
        JPanel content = new JPanel();
        content.setLayout(new FlowLayout());
        final JTextField textField = new JTextField(15);
        JDateChooser chooser = new JDateChooser();
        Date d1=(Date)chooser.getDate();
    
       chooser.setSize(15, 10);
      chooser.addPropertyChangeListener("date", new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
    
        JDateChooser chooser = (JDateChooser)evt.getSource();
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:MM:SS");
        textField.setText(formatter.format(chooser.getDate()));
    }
    });
    
     content.add(textField);
      content.add(chooser);
       }
  4. 0

    Esta es la manera más fácil que nunca la he usado. Usted no necesita realizar ninguna otra cosa .

    statement.setString(2,((JTextField) jDateChooser1.getDateEditor().getUiComponent()).getText());

Dejar respuesta

Please enter your comment!
Please enter your name here