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_COLUMN
DEFAULT_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, setLongParameter
checkNotNullAndLog, checkNotNullAndLog, getFetchSize, lookupDataSource
public 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 DataModel
setPreference
in class AbstractJDBCDataModel
TasteException
Copyright © 2008–2017 The Apache Software Foundation. All rights reserved.