发布于2024-11-02 21:01 阅读(516) 评论(0) 点赞(28) 收藏(4)
首先感谢大家之前的帮助和建议。我只是在学习数据库和 MySQL,所以请耐心听我问一些新手类型的问题。
我输入了 2 个参数,一个是字符串,另一个是日期。然后我想输出另一个值。字符串很简单,但我无法正确比较日期。如果日期和字符串匹配,那么这就是我要查找的记录
这是表格的副本
private String agentDetail = "CREATE TABLE AgentDetail ("
+ "idNo INT(64) NOT NULL AUTO_INCREMENT,"
+ "initials VARCHAR(2),"
+ "agentDate DATE,"
+ "agentCount INT(64), "
+ "PRIMARY KEY(idNo))";
问题是它总是返回所有日期,包括正确和不正确的结果
这是我目前正在使用的代码
protected void getAgentIdNo (Connection con, PreparedStatement preStatement,
ResultSet result, String initials, Date myDate) {
try {
preStatement = con.prepareStatement("SELECT * FROM AGENTDETAIL");
result = preStatement.executeQuery();
while (result.next()) {
if (result.getString("initials").equals(initials)){
if (myDate.compareTo(result.getDate("agentDate")) == 0){
System.out.println("The date and initials matched !!");
System.out.println("The id no is " + result.getint("idNo");
}
}
}
}
catch (SQLException ex) {
System.out.println("An error occured when reading from the data base");
ex.printStackTrace();
}
}
我也知道这个代码远非完美,因此想建议一个看起来更专业的代码。在此先感谢大家的帮助和支持。
我建议不要通过编程来制作过滤器,而是(在这种情况下进行 SQL 查询)。
您可以执行以下操作:
protected void getAgentIdNo (Connection con, PreparedStatement preStatement,
ResultSet result, String initials, Date myDate) {
try {
preStatement = con.prepareStatement("SELECT * FROM AGENTDETAIL as ag WHERE ag.initial = ? AND date = ?");
preStatment.setSring(1,initials);
preStatment.setString(2,date);
result = preStatement.executeQuery();
while (result.next()) {
System.out.println("The date and initials matched !!");
System.out.println("The id no is " + result.getint("idNo");
}
}
}
catch (SQLException ex) {
System.out.println("An error occured when reading from the data base");
ex.printStackTrace();
}
}
注意:如需了解更多详细信息,请参阅此链接。
希望有帮助^^
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/691846/834255e207700f4edbfb/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!