我想问一个关于SQL的问题。我有下表。
Name Phone
a 1
b 2
c 3
d 4
e 5
我有一个包含[a,b,c,d,e]的ArrayList(java)。是否可以将ArrayList放入mySQL语句中以检索所有电话号码?谢谢。
答案 0 :(得分:1)
您可以为所有名称创建一个IN子句,并将结果集映射到您的数据:
SELECT Name, Phone FROM Numbers WHERE Name IN ('a','b','c','d','e')
我确信已有图书馆为您完成所需的工作。您可以从http://www.hibernate.org/开始研究。
答案 1 :(得分:1)
我认为没有直接的方法可以做到这一点 但是您有以下选择:
您可以使用IN子句。通过循环遍历列表并创建字符串来动态创建IN子句。注意:Oracle将IN子句中的条目数限制为1000.
您可以将值插入(temp)表,并在SQL中,IN子句中使用此表,或者作为JOIN使用此表(我更喜欢连接)
您可以将PL / SQL存储过程作为参数接收(oracle)数组。并在存储过程中循环遍历此数组。有关示例,请参阅this。
答案 2 :(得分:0)
你必须为每个java创建自己的语句。 迭代arraylist并将每个字符串元素添加到语句中。