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

需要基于通过java中以前的sql查询检索到的值,通过sql检索数据库行值,java,sql,jdbc,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_sta

我的代码是这样的

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));
但这不起作用-控制台显示以下错误:


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

您已将
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();
    ...
    }
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();
    ...
    }