Mysql 从数据库检索值时,我可以在datepicker中使用((TextField)selecteDOP.getEditor()).getText()吗

Mysql 从数据库检索值时,我可以在datepicker中使用((TextField)selecteDOP.getEditor()).getText()吗,mysql,sql,database,javafx,Mysql,Sql,Database,Javafx,我试图从数据库中检索用户从datepicker选择的特定日期的数据,但我的代码不起作用。您能建议我如何克服它吗数据库中的值是如何存储的?这个栏目是什么类型的?使用PreparedStatement并通过该对象设置值可能更简单。在处理事件的方法中检索值也有什么问题selecteDOP在初始化器中很可能是null,在初始化器中,您尝试检索值,即使表达式可以在没有NullPointerException的情况下计算,该值只是初始值,而不是基于用户交互的值集……我使用((TextField)select

我试图从数据库中检索用户从datepicker选择的特定日期的数据,但我的代码不起作用。您能建议我如何克服它吗

数据库中的值是如何存储的?这个栏目是什么类型的?使用
PreparedStatement
并通过该对象设置值可能更简单。在处理事件的方法中检索值也有什么问题
selecteDOP
在初始化器中很可能是
null
,在初始化器中,您尝试检索值,即使表达式可以在没有
NullPointerException的情况下计算,该值只是初始值,而不是基于用户交互的值集……我使用((TextField)selecteDOP.getEditor()存储日期.getText()在我的数据库中作为文本。我不建议这样做。这使得基于日期编写条件变得更加困难,更糟糕的是,用于
日期选择器的格式化程序取决于区域设置。在德国和美国不会得到相同的结果。使用会更好,并且使用
PreparedStatement ps
无论语言环境如何,使用日期都将是
ps.setDate(index,date.valueOf(selecteDOP.getValue())
public DatePicker selecteDOP;
public Label label;

String dop = ((TextField)selecteDOP.getEditor()).getText();
String msg1 ="";

@FXML
public void purchases(ActionEvent event){
    msg1 = "First name   Last name   Username   Description  Code  Size  Cost  Quantity  Date of purchase\n";
    try{
        String qr = "SELECT j_fname,j_lname,username,description,code,size,cost,quantity,dop FROM jeff INNER JOIN purchase ON jeff.j_mail = purchase.username where dop='"+dop+"'";
        rs = st.executeQuery(qr);

        while (rs.next()){
            msg1 += rs.getString("j_fname")+"  "+rs.getString("j_lname")+"  "+rs.getString("username")+"   "+rs.getString("description")+"    "+rs.getString("code")+"  "+rs.getString("size")+"  "+rs.getString("cost")+"  "+rs.getString("quantity")+"   "+rs.getString("dop")+"\n";
        }
        label.setText(msg1);

    }catch (Exception e){
        System.out.println(e);
    }

}