Passing array parameter in prepare statement - getting “java.sql.SQLFeatureNotSupportedException”

后端 未结 3 784
逝去的感伤
逝去的感伤 2020-12-16 08:39

I am facing error java.sql.SQLFeatureNotSupportedException in my prepare statement. I am using Mysql database.

Below is my code.

class tmp {
public s         


        
3条回答
  •  感动是毒
    2020-12-16 09:03

    Error message is very clear. And MySQL does not support custom data types.

    Currently MySQL is supporting only:

    1. Numeric Type
    2. Date and Time Type
    3. String Type

    Or, you can use each of the input values as a set of values of IN function in MySQL.

    Change your JAVA code as follows:

    StringBuilder sbSql = new StringBuilder( 1024 );
    sbSql.append( "select * from userinfo where firstname in(" );
    
    for( int i=0; i < Parameter.length; i++ ) {
      if( i > 0 ) sbSql.append( "," );
      sbSql.append( " ?" );
    } // for
    sbSql.append( " )" );
    PreparedStatement pst = conn.prepareStatement( sbSql.toString() );
    
    for( int i=0; i < Parameter.length; i++ ) {
      pst.setString( i+1, Parameter[ i ] );
    } // for
    
    ResultSet rs = pst.executeQuery();
    

提交回复
热议问题