【问题标题】:dateChooser getting value to search between datesdateChooser 获取在日期之间搜索的价值
【发布时间】:2013-06-09 09:37:56
【问题描述】:

我如何从 2 个 JDateChooser 格式的 yyyy-MM-d 中获取值并将其放入 sql 查询(String sql="select .... from ... between date1 and date2"),该查询应在这些日期之间搜索数据并在 JTable 中输出。

我使用了代码但没有出现输出:

String v1 = gr_date1.getDate().toString();
String v2 = gr_date2.getDate().toString();
try {
    sql = "select barcode,itemName,description,supplier,capital,wholesale,srp,minStock,status,dateSaved from item where dateSaved between '"+v1+"' AND '"+v2+"'";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
    gReport_table.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
    JOptionPane.showMessageDialog(null, e);
}

【问题讨论】:

  • 首先,永远不要像这样构建 SQL 查询。目前这可能不是问题,因为 v1v2 字符串是如何构建的,但给它一些时间,根据墨菲定律,有人最终更改它,因此它容易受到 SQL 注入的影响:en.wikipedia.org/wiki/SQL_injection 我强烈建议您改用可以安全转义参数以防止 SQL 注入的查询构建库。
  • 它的修复还是谢谢先生,这只是一个示例编码,但可能会在我们的进一步课程中得到增强

标签: mysql netbeans search-engine jdatechooser


【解决方案1】:

您将 v1 和 v2 作为字符串传递。然后它不会比较

为 v1 和 v2 尝试 DateTime.Parse()

DateTime.Parse(v1) 和 DateTime.Parse(v2)

【讨论】:

  • 日期 dateFromDateChooser = gr_date1.getDate(); String v1 = String.format("%1$tY-%1$tm-%1$td", dateFromDateChooser);我试过了,它有效..还是谢谢你。
猜你喜欢
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 2015-07-01
  • 2016-05-17
  • 1970-01-01
相关资源
最近更新 更多