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 条件在两列家庭号和日期中获取日期的主要内容,如果未能解决你的问题,请参考以下文章