public class SQL92JDBCDataModel extends AbstractJDBCDataModel
A JDBCDataModel backed by a SQL92 compatible database and
accessed via JDBC. It should work with most JDBC databases, although not optimized for performance.
By default, this class assumes that there is a DataSource available under the JNDI name
"jdbc/taste", which gives access to a database with a "taste_preferences" table with the following schema:
CREATE TABLE taste_preferences ( user_id BIGINT NOT NULL, item_id BIGINT NOT NULL, preference REAL 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);
SQL92BooleanPrefJDBCDataModel,
Serialized FormDEFAULT_ITEM_ID_COLUMN, DEFAULT_PREFERENCE_COLUMN, DEFAULT_PREFERENCE_TABLE, DEFAULT_PREFERENCE_TIME_COLUMN, DEFAULT_USER_ID_COLUMNDEFAULT_DATASOURCE_NAME| Constructor and Description |
|---|
SQL92JDBCDataModel()
Creates a using the default
DataSource (named
AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME and default table/column names. |
SQL92JDBCDataModel(DataSource dataSource)
Creates a using the given
DataSource and default table/column names. |
SQL92JDBCDataModel(DataSource dataSource,
String preferenceTable,
String userIDColumn,
String itemIDColumn,
String preferenceColumn,
String timestampColumn)
Creates a using the given
DataSource and default table/column names. |
SQL92JDBCDataModel(String dataSourceName)
Creates a using the default
DataSource found under the given name, and
using default table/column names. |
| Modifier and Type | Method and Description |
|---|---|
protected String |
getUpdatePreferenceSQL() |
protected String |
getVerifyPreferenceSQL() |
void |
setPreference(long userID,
long itemID,
float value)
Override since SQL92 doesn't have the same non-standard capability that MySQL has, to optionally
insert or update in one statement.
|
buildPreference, doGetPreferencesForItem, exportWithIDsOnly, exportWithPrefs, getDataSource, getItemIDColumn, getItemIDs, getItemIDsFromUser, getLongColumn, getMaxPreference, getMinPreference, getNumItems, getNumUsers, getNumUsersWithPreferenceFor, getNumUsersWithPreferenceFor, getPreferenceColumn, getPreferencesForItem, getPreferencesFromUser, getPreferenceTable, getPreferenceTime, getPreferenceValue, getUserIDColumn, getUserIDs, hasPreferenceValues, refresh, removePreference, setLongParametercheckNotNullAndLog, checkNotNullAndLog, getFetchSize, lookupDataSourcepublic SQL92JDBCDataModel()
throws TasteException
Creates a using the default DataSource (named
AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME and default table/column names.
TasteException - if DataSource can't be foundpublic SQL92JDBCDataModel(String dataSourceName) throws TasteException
Creates a using the default DataSource found under the given name, and
using default table/column names.
dataSourceName - name of DataSource to look upTasteException - if DataSource can't be foundpublic SQL92JDBCDataModel(DataSource dataSource)
Creates a using the given DataSource and default table/column names.
dataSource - DataSource to usepublic SQL92JDBCDataModel(DataSource dataSource, String preferenceTable, String userIDColumn, String itemIDColumn, String preferenceColumn, String timestampColumn)
Creates a using the given DataSource and default table/column names.
dataSource - DataSource to usepreferenceTable - name of table containing preference datauserIDColumn - user ID column nameitemIDColumn - item ID column namepreferenceColumn - preference column nametimestampColumn - timestamp column name (may be null)protected String getUpdatePreferenceSQL()
protected String getVerifyPreferenceSQL()
public void setPreference(long userID,
long itemID,
float value)
throws TasteException
setPreference in interface DataModelsetPreference in class AbstractJDBCDataModelTasteExceptionCopyright © 2008–2013 The Apache Software Foundation. All rights reserved.