// Path: src/main/java/com/github/mjdbc/type/DbInt.java
// public interface DbInt {
//     /**
//      * @return database object representation.
//      */
//     int getDbValue();
// }
// 
// Path: src/main/java/com/github/mjdbc/type/DbLong.java
// public interface DbLong {
//     /**
//      * @return database object representation.
//      */
//     long getDbValue();
// }
// 
// Path: src/main/java/com/github/mjdbc/type/DbString.java
// public interface DbString {
//     /**
//      * @return database object representation.
//      */
//     String getDbValue();
// }
// 
// Path: src/main/java/com/github/mjdbc/type/DbTimestamp.java
// public interface DbTimestamp {
//     /**
//      * @return database object representation.
//      */
//     Timestamp getDbValue();
// }


import com.github.mjdbc.DbImpl.BindInfo;
import com.github.mjdbc.type.DbInt;
import com.github.mjdbc.type.DbLong;
import com.github.mjdbc.type.DbString;
import com.github.mjdbc.type.DbTimestamp;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.JDBCType;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLType;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
        }
        return this;
    }

    /**
     * Sets boolean value for all fields matched by name.
     */
    @NotNull
    public DbPreparedStatement<T> set(@NotNull String name, boolean value) throws SQLException {
        for (int i : getIndexes(name)) {
            statement.setBoolean(i, value);
        }
        return this;
    }

    /**
     * Sets int value for all fields matched by name.
     */
    @NotNull
    public DbPreparedStatement<T> set(@NotNull String name, int value) throws SQLException {
        for (int i : getIndexes(name)) {
            statement.setInt(i, value);
        }
        return this;
    }

    /**
     * Sets int value for all fields matched by name. If value is null calls setNull for all fields.
     */
    @NotNull
// Path: src/main/java/com/github/mjdbc/type/DbInt.java
// public interface DbInt {
//     /**
//      * @return database object representation.
//      */
//     int getDbValue();
// }
// 
// Path: src/main/java/com/github/mjdbc/type/DbLong.java
// public interface DbLong {
//     /**
//      * @return database object representation.
//      */
//     long getDbValue();
// }
// 
// Path: src/main/java/com/github/mjdbc/type/DbString.java
// public interface DbString {
//     /**
//      * @return database object representation.
//      */
//     String getDbValue();
// }
// 
// Path: src/main/java/com/github/mjdbc/type/DbTimestamp.java
// public interface DbTimestamp {
//     /**
//      * @return database object representation.
//      */
//     Timestamp getDbValue();
// }


// Path: src/main/java/com/github/mjdbc/DbPreparedStatement.java
import com.github.mjdbc.DbImpl.BindInfo;
import com.github.mjdbc.type.DbInt;
import com.github.mjdbc.type.DbLong;
import com.github.mjdbc.type.DbString;
import com.github.mjdbc.type.DbTimestamp;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.JDBCType;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLType;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

        }
        return this;
    }

    /**
     * Sets boolean value for all fields matched by name.
     */
    @NotNull
    public DbPreparedStatement<T> set(@NotNull String name, boolean value) throws SQLException {
        for (int i : getIndexes(name)) {
            statement.setBoolean(i, value);
        }
        return this;
    }

    /**
     * Sets int value for all fields matched by name.
     */
    @NotNull
    public DbPreparedStatement<T> set(@NotNull String name, int value) throws SQLException {
        for (int i : getIndexes(name)) {
            statement.setInt(i, value);
        }
        return this;
    }

    /**
     * Sets int value for all fields matched by name. If value is null calls setNull for all fields.
     */
    @NotNull
    public DbPreparedStatement<T> set(@NotNull String name, @Nullable DbInt value) throws SQLException {