podawanie daty z javy do mysql

0

Cześć, mam problem z podaniem daty w odpowiedniej w formie do bazy danych mysql z javy. Potrzebuję zapytania, w którym jednym z kryteriów będzie data.
Moje zapytanie w procedurze składowanej wygląda tak:

                    SELECT DISTINCT 
			p.id_pomiar
		FROM
			ble.pomiar p
				INNER JOIN
			ble.lampa_elektronowa le
				INNER JOIN
			ble.typ t ON (t.id_typ = le.id_typ) AND (le.id_lampa = p.id_lampa)
		WHERE 
			(t.typ = TYP) AND (le.nazwa_lampy = NAZWA_LAMPY) AND (p.data_pomiaru = DATA_POMIARU)
		ORDER BY 
			p.id_pomiar ASC;

w przypadku kiedy ręcznie wpiszę datę "p.data_pomiaru = '2016-06-10')" zapytanie zwraca wynik zgodny z oczekiwaniami. Problem pojawia się gdy procedura jest wywoływana z poziomu aplikacji w javie.

Oto kod odpowiedzialny za tą funkcjonalność:

void uzupelnianieComboBox(String ZAPYTANIE, String NAZWA_LAMPY, String TYP, String DATA, javax.swing.JComboBox jComboBox, String nazwa_zmiennej ){
        
        List<String> zawartoscCB = new ArrayList<>();
        String dana = null;
        java.sql.Date sqlData = konwertujDate(DATA);
        Integer danaint = 0;
        
        
        MojResultSet mrs = new MojResultSet();
        ResultSet rs = mrs.wybierz(ZAPYTANIE, 0, NAZWA_LAMPY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, TYP, sqlData, 0, 0, 0, 0);
        try{
            while(rs.next()){
                if("nazwa_lampy".equals(nazwa_zmiennej))
                    dana = rs.getString(nazwa_zmiennej);
                if("data_pomiaru".equals(nazwa_zmiennej))
                    dana = rs.getDate(nazwa_zmiennej).toString();
                if ("id_pomiar".equals(nazwa_zmiennej)){
                    danaint = rs.getInt(nazwa_zmiennej);
                    dana = danaint.toString();
                }
                zawartoscCB.add(dana);
                
            }
        } catch(SQLException ex){
            Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        if(zawartoscCB.isEmpty()){
            jComboBox.addItem("brak");
        }
        else{
            for(String b: zawartoscCB){
                jComboBox.addItem(b);
            }
        }
        zawartoscCB.clear();
   }
   
   
    java.sql.Date konwertujDate(String sData){
       
        DateFormat format = new SimpleDateFormat("yyyy-mm-dd");
        java.util.Date mojaData = new java.util.Date();
        java.sql.Date sqlData;
        
        try{
            mojaData = format.parse(sData);
            sqlData = new java.sql.Date(mojaData.getTime());
        } catch(Exception e) {
            sqlData = null;
        }
        
        
        return sqlData;
   } 
package BLE;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class MojResultSet {
    
    Connection conn = null;
    ResultSet rs = null;
    CallableStatement pstmt = null;
    String polaczenieURL = "jdbc:mysql://localhost:3306/ble?zeroDateTimeBehavior=convertToNull&useSSL=false";
    String jkomunikat;
    
    
    public ResultSet wybierz(String v1, int v2, String v3, int v4, int v5, int v6, float v7, float v8, float v9, float v10, float v11, float v12, int v13, String v14, 
            java.sql.Date v15, int v16, int v17, int v18, int v19){
        
        try{
            conn = DriverManager.getConnection(polaczenieURL,"root","1234");
            Class.forName("com.mysql.jdbc.Driver"); // ustawienie sterownika mysql
            pstmt = conn.prepareCall("{call ble.procedura_lampa(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            pstmt.setString(1, v1);
            pstmt.setInt(2, v2);
            pstmt.setString(3, v3);
            pstmt.setInt(4, v4);
            pstmt.setInt(5, v5);
            pstmt.setInt(6, v6);
            pstmt.setFloat(7, v7);
            pstmt.setFloat(8, v8);
            pstmt.setFloat(9, v9);
            pstmt.setFloat(10, v10);
            pstmt.setFloat(11, v11);
            pstmt.setFloat(12, v12);
            pstmt.setInt(13, v13);
            pstmt.setString(14, v14);
            pstmt.setDate(15, v15);
            pstmt.setInt(16, v16);
            pstmt.setInt(17, v17);
            pstmt.setInt(18, v18);
            pstmt.setInt(19, v19);
            pstmt.setString(20, "");
               
            rs = pstmt.executeQuery();
               
            pstmt.registerOutParameter(20, java.sql.Types.VARCHAR); 
            String jkomunikat = pstmt.getString(20);
            if(jkomunikat != null && !jkomunikat.isEmpty()){
                JOptionPane.showMessageDialog(null, jkomunikat);
                 
            }  
        } catch(SQLException wyjatek){
            System.out.println("SQLException: " + wyjatek.getMessage());
            System.out.println("SQLState: " + wyjatek.getSQLState());
            System.out.println("VendorError: " + wyjatek.getErrorCode());   
        } catch(ClassNotFoundException wyjatek){
            System.out.println("Problem ze sterownikiem");
        }
         
        return rs;
    }
    
    public void zamknijPolaczenie() throws SQLException {
        conn.close();
    }
    public void zamknijCallableStatement() throws SQLException {
        pstmt.close();
    }

    public String zwrocKomunikat(){
        return jkomunikat;
    }

    
    
}

nie wiem jak w takim rozwiazaniu dorzucić te brakujące ' ' do daty, których wymaga mysql... proszę o pomoc.

1

Problem w formacie daty, powinno być>

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

1 użytkowników online, w tym zalogowanych: 0, gości: 1