需要基于通过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();
...
}