where 条件在两列家庭号和日期中获取日期

Posted

技术标签:

【中文标题】where 条件在两列家庭号和日期中获取日期【英文标题】:where conditon to get date in two columns familyno and date 【发布时间】:2014-07-12 09:17:29 【问题描述】:
public class UserSearchDAO 


public ArrayList searchRecords(UserDTO udto) throws SQLException

    DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/msdb","root","root");
    udto.getDate();
    
    //elseif(udto.getDate()!=null && !udto.getDate().equals(""))
        //query = query+ "where date="+udto.getDate();

    System.out.println(query);
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    ArrayList list = new ArrayList();





//这是获取familyno和date字段中记录的DAO层。你能帮我写正确的查询吗?我是新数据库。

query = query+ " where familyno="+udto.getFamilyno(), udto.getDate();

【问题讨论】:

首先要解决的问题:停止将值直接放入 SQL 中。使用PreparedStatement,并在其上设置参数。这可能已经解决了问题 - 因为您只是 将代码转储到您的问题中,而没有描述发生了什么问题,所以很难说清楚。 (我的猜测是这是一个编译时错误,因为您的语句中的 , udto.getDate() 部分看起来像是您认为自己正在调用一个方法,但实际上并非如此。)我们无法为您提供帮助没有更多信息。请阅读tinyurl.com/so-hints (另外,你应该开始使用泛型 - List<UserVO> 等) 【参考方案1】:

一般格式,

query =select * from  table_name where table_col1="+getvalue1()+" && table_col2="+getvalue2()+";

为了你的数据库,

query="select * from  userVO where familyno="+udto.getFamilyno()+" && date="+udto.getDate()+";";

【讨论】:

不要将值连接到查询中,使用参数化语句 (PreparedStatement)。 您的查询对我来说没问题。谢谢

以上是关于where 条件在两列家庭号和日期中获取日期的主要内容,如果未能解决你的问题,请参考以下文章

从 DB2 查询中 where 子句中输入的日期获取上个月

如何使用 python 在两列中扩展具有日期范围的数据框?

在两列上创建索引以检查日期是不是介于这两个列之间

什么是 django 查询来查找搜索日期在两列之间的记录不是?

当时间范围在两天之间时如何获取特定时间范围内的记录

Python 按两列分组,然后获取最早和最晚日期