## org.apache.mahout.cf.taste.impl.model.jdbc
Class SQL92BooleanPrefJDBCDataModel

    java.lang.Object
      org.apache.mahout.cf.taste.impl.common.jdbc.AbstractJDBCComponent
          org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
              org.apache.mahout.cf.taste.impl.model.jdbc.AbstractBooleanPrefJDBCDataModel
                  org.apache.mahout.cf.taste.impl.model.jdbc.SQL92BooleanPrefJDBCDataModel

All Implemented Interfaces:
  Serializable, Refreshable, DataModel, JDBCDataModel

Direct Known Subclasses:
  PostgreSQLBooleanPrefJDBCDataModel

    public class SQL92BooleanPrefJDBCDataModel

extends AbstractBooleanPrefJDBCDataModel

See also `SQL92JDBCDataModel` -- same except deals with a table without preference info:

     CREATE TABLE taste_preferences (
       user_id BIGINT NOT NULL,
       item_id BIGINT NOT NULL,
       PRIMARY KEY (user_id, item_id)
     );
     CREATE INDEX taste_preferences_user_id_index ON taste_preferences (user_id);
     CREATE INDEX taste_preferences_item_id_index ON taste_preferences (item_id);

See Also:
  `SQL92JDBCDataModel`, Serialized Form

Field Summary

Fields inherited from class org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
`DEFAULT_ITEM_ID_COLUMN, DEFAULT_PREFERENCE_COLUMN, DEFAULT_PREFERENCE_TABLE, DEFAULT_PREFERENCE_TIME_COLUMN, DEFAULT_USER_ID_COLUMN`

Fields inherited from class org.apache.mahout.cf.taste.impl.common.jdbc.AbstractJDBCComponent
`DEFAULT_DATASOURCE_NAME`

Constructor Summary
`SQL92BooleanPrefJDBCDataModel()` Creates a using the default `DataSource` (named `AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME` and default table/column names.
`SQL92BooleanPrefJDBCDataModel(DataSource dataSource)` Creates a using the given `DataSource` and default table/column names.
`SQL92BooleanPrefJDBCDataModel(DataSource dataSource, String preferenceTable, String userIDColumn, String itemIDColumn, String timestampColumn)` Creates a using the given `DataSource` and default table/column names.
`SQL92BooleanPrefJDBCDataModel(String dataSourceName)` Creates a using the default `DataSource` found under the given name, and using default table/column names.

Method Summary
`protected String` `getVerifyPreferenceSQL()`
`void` `setPreference(long userID, long itemID, float value)` Override since PostgreSQL doesn't have the same non-standard capability that MySQL has, to optionally ignore an insert that fails since the row exists already.

Methods inherited from class org.apache.mahout.cf.taste.impl.model.jdbc.AbstractBooleanPrefJDBCDataModel
`buildPreference, getMaxPreference, getMinPreference, hasPreferenceValues`

Methods inherited from class org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel

`doGetPreferencesForItem, exportWithIDsOnly, exportWithPrefs, getDataSource, getItemIDColumn, getItemIDs, getItemIDsFromUser, getLongColumn, getNumItems, getNumUsers, getNumUsersWithPreferenceFor, getNumUsersWithPreferenceFor, getPreferenceColumn, getPreferencesForItem, getPreferencesFromUser, getPreferenceTable, getPreferenceTime, getPreferenceValue, getUserIDColumn, getUserIDs, refresh, removePreference, setLongParameter`

Methods inherited from class org.apache.mahout.cf.taste.impl.common.jdbc.AbstractJDBCComponent
`checkNotNullAndLog, checkNotNullAndLog, getFetchSize, lookupDataSource`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SQL92BooleanPrefJDBCDataModel

    public SQL92BooleanPrefJDBCDataModel()
                                  throws TasteException

  Creates a using the default `DataSource` (named `AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME` and default table/column names.

  Throws:
    `TasteException` - if `DataSource` can't be found

### SQL92BooleanPrefJDBCDataModel

    public SQL92BooleanPrefJDBCDataModel(String dataSourceName)
                                  throws TasteException

  Creates a using the default `DataSource` found under the given name, and using default table/column names.

  Parameters:
    `dataSourceName` - name of `DataSource` to look up
  Throws:
    `TasteException` - if `DataSource` can't be found

### SQL92BooleanPrefJDBCDataModel

    public SQL92BooleanPrefJDBCDataModel(DataSource dataSource)

  Creates a using the given `DataSource` and default table/column names.

  Parameters:
    `dataSource` - `DataSource` to use

### SQL92BooleanPrefJDBCDataModel

    public SQL92BooleanPrefJDBCDataModel(DataSource dataSource,
                                         String preferenceTable,
                                         String userIDColumn,
                                         String itemIDColumn,
                                         String timestampColumn)

  Creates a using the given `DataSource` and default table/column names.

  Parameters:
    `dataSource` - `DataSource` to use
    `preferenceTable` - name of table containing preference data
    `userIDColumn` - user ID column name
    `itemIDColumn` - item ID column name
    `timestampColumn` - timestamp column name (may be null)

Method Detail

### getVerifyPreferenceSQL

    protected String getVerifyPreferenceSQL()

### setPreference

    public void setPreference(long userID,
                              long itemID,
                              float value)
                       throws TasteException

  Override since PostgreSQL doesn't have the same non-standard capability that MySQL has, to optionally ignore an insert that fails since the row exists already.

  Specified by:
    `setPreference` in interface `DataModel`
  Overrides:
    `setPreference` in class `AbstractBooleanPrefJDBCDataModel`
  Throws:
    `TasteException`

Copyright © 2008–2014 The Apache Software Foundation. All rights reserved.