public class PostgreSQLJDBCDataModel extends SQL92JDBCDataModel
A JDBCDataModel
backed by a PostgreSQL database and
accessed via JDBC. It may work with other JDBC databases. 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);
PostgreSQLJDBCDataModel
,
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 |
---|
PostgreSQLJDBCDataModel()
Creates a using the default
DataSource (named
AbstractJDBCComponent.DEFAULT_DATASOURCE_NAME and default table/column names. |
PostgreSQLJDBCDataModel(DataSource dataSource)
Creates a using the given
DataSource and default table/column names. |
PostgreSQLJDBCDataModel(DataSource dataSource,
String preferenceTable,
String userIDColumn,
String itemIDColumn,
String preferenceColumn,
String timestampColumn)
Creates a using the given
DataSource and default table/column names. |
PostgreSQLJDBCDataModel(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 |
---|---|
void |
setPreference(long userID,
long itemID,
float value)
Override since PostgreSQL doesn't have the same non-standard capability that MySQL has, to optionally
insert or update in one statement.
|
getUpdatePreferenceSQL, getVerifyPreferenceSQL
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 PostgreSQLJDBCDataModel() 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 PostgreSQLJDBCDataModel(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 PostgreSQLJDBCDataModel(DataSource dataSource)
Creates a using the given DataSource
and default table/column names.
dataSource
- DataSource
to usepublic PostgreSQLJDBCDataModel(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)public void setPreference(long userID, long itemID, float value) throws TasteException
setPreference
in interface DataModel
setPreference
in class SQL92JDBCDataModel
TasteException
Copyright © 2008–2017 The Apache Software Foundation. All rights reserved.