需要根据java中以前的sql查询检索到的值,通过sql检索数据库行值

时间:2014-01-02 07:02:50

标签: java sql jdbc

我的代码就是这样的

DataBaseUtil dbBaseUtil=new DataBaseUtil();
Connection con=dbBaseUtil.getConnection();

String query="select case_id, ticket_id from VAPP_ITEM where
(person1_alt_email='" + username +"') and ticket_type='Service Request' and       ticket_status not in ('Closed','Resolved')";

ResultSet rs=dbBaseUtil.getDbResultSet(query);
List<String> tickets=new ArrayList<String>();
while(rs.next())
ticket.add(rs.getString("case_Id")+"-"+rs.getString("ticket_Id"));

MyTicketUtil.searchAndOpenTicket(webui, "", tickets.get(0));

现在,一旦我获得了元素&#34;票证(0)&#34;,我就对它执行了一些操作,并且在执行操作之后,我需要为操作所在的票证检索ticket_status演出 - 门票(0)。

但是,要查询数据库,我需要case_id和ticket_id作为故障单(0)。怎么办呢?

我尝试创建两个ResultSet和一个查询发布操作,如下所示:

while(rs1.next())
quer1 = "select ticket_status from VAPP_ITEM where case_id=rs.getString(1) and ticket_id = rs.getString(2)";

但这不起作用 - 控制台显示错误:

com.microsoft.sqlserver.jdbc.SQLServerException:找不到列&#34; rs&#34;或用户定义的函数或聚合&#34; rs.getString&#34;,或名称不明确。

1 个答案:

答案 0 :(得分:0)

您已将rs.getString()包含在字符串文字中。

你应该使用PreparedStatement来做这些事情:

quer1 = "SELECT ticket_status FROM vapp_item WHERE case_id=? AND ticket_id = ?";
PreparedStatement pstm = conn.prepareStatement(quer1);
while (rs1.next())
    {
    pstm.setString(1, rs.getString(1));
    pstm.setString(2, rs.getString(2));
    rs2 = pstm.executeQuery();
    ...
    }