class ShardingPreparedStatement extends AbstractPreparedStatementAdapter {

    @Override
    public boolean execute() throws SQLException {
        try {
            Collection<PreparedStatementUnit> preparedStatementUnits = route();
//            创建预编译statement的sql执行器
            return new PreparedStatementExecutor(
                    getShardingConnection().getShardingContext().getExecutorEngine(), getRouteResult().getSqlStatement().getType(), preparedStatementUnits, getParameters()).execute();
        } finally {
//            释放内存
            clearBatch();
        }
    }

    public  ShardingPreparedStatement(final ShardingConnection shardingConnection, final String sql);
    public  ShardingPreparedStatement(final ShardingConnection shardingConnection, final String sql, final int resultSetType, final int resultSetConcurrency);
    public  ShardingPreparedStatement(final ShardingConnection shardingConnection, final String sql, final int autoGeneratedKeys);
    public  ShardingPreparedStatement(final ShardingConnection shardingConnection, final String sql, final int resultSetType, final int resultSetConcurrency, final int resultSetHoldability);

}