Java - USO DE JDATECHOOSER

 
Vista:
sin imagen de perfil

USO DE JDATECHOOSER

Publicado por FRANCISCO (20 intervenciones) el 12/05/2017 02:46:00
Hola amigos necesito que me ayuden ya que necesito hacer consulta de datos en un rango de fechas.
estoy utilizando el JDATECHOOSER pero al hacer la consulta no me tira ningun resultado.

Les dejo el codigo que tengo para que me digan en que estoy mal los datos de la consulta los ingreso a un Jtable

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public void proveedor(){
                String[] titulos={"Fecha","Proveedor","Salida"};
                Date fecha1,fecha2;
                fecha1=f_inc.getDate();
                fecha2=f_fin.getDate();
                String[] registros=new String[3];
                String sql=("SELECT fecha,pro,pago FROM entrada WHERE fecha BETWEEN '"+fecha1+"' AND '"+fecha2+"'");
                 model = new DefaultTableModel(null,titulos);
 
                 conexion cc=new conexion();
                 Connection cn=cc.conexion();
                 Statement st;
        try {
            st=cn.createStatement();
            ResultSet rs=st.executeQuery(sql);
        while(rs.next()){
           registros[0]=rs.getString("fecha");
           registros[1]=rs.getString("pro");
           registros[2]=rs.getString("pago");
           model.addRow(registros);
            }
        ta_proveedor.setModel(model);
        } catch (SQLException ex) {
            Logger.getLogger(corte_caja.class.getName()).log(Level.SEVERE, null, ex);
        }
            }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

USO DE JDATECHOOSER

Publicado por Dante (19 intervenciones) el 12/05/2017 06:06:28
Estimado.

Como consejo no debes de usar concatenaciones al realizar consultas, debes utilizar parametros para evitar la injeccion SQL.


utilizaria
1
2
3
4
5
6
PreparedStatement pst = null;
String sql=("SELECT fecha,pro,pago FROM entrada WHERE fecha BETWEEN ? AND ?");
pst = cn.prepareStatement(sql);
pst.setDate(1, fecha1);
pst.setDate(2, fecha1);
rs =  ResultSet rs=pst.executeQuery();

Prueba y me cuentas, si no revisamos otras opciones a no ser que alguien mas tenga otra respuesta.

Saludos.

Nota: Personalmente en java prefiero utilizar Java Persistance, es una buena herramienta para trabajar conectado a una base de datos y ahorra tiempo en codigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

USO DE JDATECHOOSER

Publicado por FRANCISCO (20 intervenciones) el 15/05/2017 18:31:00
hola amigo intento resolver el problema con el metodo que me dices pero me marca un error en el tipo de dato de las fechas

te agradeceria mucho si me puedes ayudar te dejo la foto
codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

USO DE JDATECHOOSER

Publicado por Dante (19 intervenciones) el 15/05/2017 19:02:34
Hay 2 opciones, envias el parametro como String con formato año-mes-dia o realizas la conversion de java Date a Sql Date


java.util.Date utilDate = new java.util.Date();

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

Me comentas como te va.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

USO DE JDATECHOOSER

Publicado por FRANCISCO (20 intervenciones) el 15/05/2017 19:23:55
esa es la parte que se me complica amigo no se que variables son las que debo convertir y en que parte del codigo convertirlas si me pudieses explicar un poco mas te lo agradeceria

te dejo codigo para que me digas si esta mal o si debo quitar algo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public void proveedor(){
                String[] titulos={"Fecha","Proveedor","Salida"};
 
                Date fecha1,fecha2;
                fecha1=f_inc.getDate();
                fecha2=f_fin.getDate();
                String[] registros=new String[3];
                 model = new DefaultTableModel(null,titulos);
 
 
                 conexion cc=new conexion();
                 Connection cn=cc.conexion();
                 Statement st;
 
        try {
 
             String sql=("SELECT fecha,pro,pago FROM entrada WHERE fecha BETWEEN ? AND ? ");
             PreparedStatement pst=cn.prepareStatement(sql);
 
 
             pst.setDate(1, fecha1);
              pst.setDate(2, fecha2);
 
 
            st=cn.createStatement();
            ResultSet rs=st.executeQuery(sql);
        while(rs.next()){
           registros[0]=rs.getString("fecha");
           registros[1]=rs.getString("pro");
           registros[2]=rs.getString("pago");
           model.addRow(registros);
            }
        ta_proveedor.setModel(model);
        } catch (SQLException ex) {
            Logger.getLogger(corte_caja.class.getName()).log(Level.SEVERE, null, ex);
        }
            }
 
 
 
            //CARGAR DATOS A LA TABLA ENTRADAS
             public void ventas(){
                String[] titulos={"Fecha","Entrada"};
                String fecha;
                //fecha=f_inc.getDateFormatString();
                //fecha="03/05/2017";
                String[] registros=new String[2];
                String sql=("SELECT fecha,pago FROM dinero");
                 model = new DefaultTableModel(null,titulos);
 
                 conexion cc=new conexion();
                 Connection cn=cc.conexion();
                 Statement st;
        try {
            st=cn.createStatement();
            ResultSet rs=st.executeQuery(sql);
        while(rs.next()){
           registros[0]=rs.getString("fecha");
           registros[1]=rs.getString("pago");
           model.addRow(registros);
            }
        ta_entrada.setModel(model);
        } catch (SQLException ex) {
            Logger.getLogger(corte_caja.class.getName()).log(Level.SEVERE, null, ex);
        }
            }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar