Named parameters

At the moment I have something like this

    String sqlScript = loadSQLScript("oee_summary_query.sql");
    PreparedStatement stmt = connection.prepareStatement(sqlScript);
    // Set the parameters for the placeholders
    stmt.setString(1, start_date);
    stmt.setString(2, end_date);

In the query I have positional placeholder ? that gets its value through the stmt.setString(), Is it possible in ignition module development to have named parameters so in the script I can define :start_date instead of ? and is there a function I can call to set all :start_date to var start_date?

No. JDBC only supports question mark placeholders. Colon-delimited placeholders are supported in Ignition named queries using text search/replace (-ish), not anything at the JDBC layer. (Non-public implementation.)

Is question mark placeholders the only (and best) way to input parameters to sql script then?

Yes, and yes.