JDBC设计好多少年了,pg,mysql,oracle多少前辈给他参考,能推出来这么个弱鸡献丑。com.sap.db.jdbc.ConnectionSapDB
    public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
        boolean on = this._tracer.on();
        boolean pon = this._tracer.pon();
        boolean aon = on ? this._tracer.aon() : false;
        PassportListener pl = this.getPassportListener();
        TraceRecord r = pon ? this._newTraceRecord("prepareStatement") : null;

        PreparedStatementSapDB var9;
        try {
            if (on) {
                this._tracer.printCall(this, "prepareStatement", new Object[]{sql, autoGeneratedKeys});
            }

            PreparedStatementSapDB result;
            try {
                if (aon || pl != null) {
                    this.apiStart();
                }

                if (autoGeneratedKeys != 2) {
                    throw SQLExceptionSapDB.newInstance("error.invalid.argumentvalue.wexample", new String[]{"autoGeneratedKeys", "NO_GENERATED_KEYS"});
                }

                result = this._prepareStatement(sql, 1003, 1007, this._getHoldability(), (String)null, 0, this._isDeferredPrepare() ? StatementFlag.DEFER_PREPARE : StatementFlag.NONE);
            } finally {
                if (aon || pl != null) {
                    this.apiFinish(aon, pl);
                }

            }

            if (on) {
                this._tracer.printResult(result);
            }

            var9 = result;
        } catch (Throwable var18) {
            if (on) {
                this._tracer.printException(var18);
            }

            if (pon) {
                r.setException(var18);
            }

            throw var18;
        } finally {
            if (pon) {
                this._publish(r);
            }

        }

        return var9;
    }