Java 如何从数据库中检索特定列等于一组字符串的记录?

Java 如何从数据库中检索特定列等于一组字符串的记录?,java,mysql,oracle,hibernate,Java,Mysql,Oracle,Hibernate,我有一个列ID(主键,varchar)、名称(varchar)、值(number)和键(number)的表T1。我有一个由ID组成的字符串数组,我希望在单个查询中从表T1检索字符串数组中具有这些ID的所有记录。如何在oracle中编写此查询 我目前正在使用for循环并获取记录: for(String id: idList) { //Query to get record one by one (Select * from t1 where ID='id') } 您能建议我在一个查询中检索

我有一个列ID(主键,varchar)、名称(varchar)、值(number)和键(number)的表T1。我有一个由ID组成的字符串数组,我希望在单个查询中从表T1检索字符串数组中具有这些ID的所有记录。如何在oracle中编写此查询

我目前正在使用for循环并获取记录:

for(String id: idList)
{
   //Query to get record one by one (Select * from t1 where ID='id')
}

您能建议我在一个查询中检索所有这些值吗?

使用以下查询

select * from t1 where id in ('id1', 'id2', 'id3')
要将ArrayList转换为该格式,请执行以下操作

StringBuilder sb = New StringBuilder();
for(String id: idList)
{
   sb.append("'"+id+"',")
}
sb.deleteCharAt(sb.length() -1);
sb.toString();
//准备查询字符串
//---------------------------------
$strQ=“”;
$len=计数($idList);
$strQ=“”””$idList[0]。“”;
对于($i=1;$i试试这个

List<Long> itemIDs = new ArrayList<Long>();
List itemIDs=new ArrayList();
添加(10); .... .... AuthService.deletePracticeAppMenu(ItemId,selectedPractice.getID())


public void deletePracticeAppMenu(列出prAppMenuIDs,Long practiceID){
String query=“从PracticeAppMenu中删除,其中PrAppMenuID在(:appMenuIDs)中,practiceID=:pracid”;
Query q=getCurrentSession().createQuery(查询);
q、 setParameterList(“appMenuIDs”,prAppMenuIDs);
q、 设置参数(“pracid”,practiceID);
q、 executeUpdate();
}

问题是所有ID都在一个字符串数组列表中。我如何将其以('id1'、'id2'、'id3')的形式表示?你能给你的代码添加注释吗?这样我就可以理解逻辑了,因为我不懂PHP,目前正在使用Java,这将非常有用
List<Long> itemIDs = new ArrayList<Long>();
public void deletePracticeAppMenu(List<Long> prAppMenuIDs, Long practiceID) {
    String query = "delete from PracticeAppMenu where PrAppMenuID  in (:appMenuIDs) and practiceID = :pracid ";
    Query q = getCurrentSession().createQuery(query);
    q.setParameterList("appMenuIDs", prAppMenuIDs);
    q.setParameter("pracid", practiceID);
    q.executeUpdate();
}