PreparedStatement: SQL的in字句后面的候选值的个数不定怎么办?

对这样一条SQL:

   sql * from t where c in (?,? …?)

我们希望问号的个数是固定的,这样才能利用SQL预编译缓存,避免硬解析

但如果问号个数就是不固定的怎么办?  

  1.如果问号的最大个数是固定的,则总是使用最大个数的问号;当parameter数小于问号数时,用null补全

    2.如果连最大个数都不是固定的,则要考虑使用数组类型了

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.