@Deprecated public class SimpleDbPersistenceManager extends DatabasePersistenceManager implements DatabaseAware
SimpleDbPersistenceManager
is a generic JDBC-based
PersistenceManager
for Jackrabbit that persists
ItemState
and NodeReferences
objects using a
simple custom binary serialization format (see Serializer
) and a
very basic non-normalized database schema (in essence tables with one 'key'
and one 'data' column).
It is configured through the following properties:
driver
: the FQN name of the JDBC driver classurl
: the database url of the form jdbc:subprotocol:subname
user
: the database userpassword
: the user's passwordschema
: type of schema to be used
(e.g. mysql
, mssql
, etc.); schemaObjectPrefix
: prefix to be prepended to schema objectsexternalBLOBs
: if true
(the default) BINARY
values (BLOBs) are stored in the local file system;
if false
BLOBs are stored in the databasegetClass().getResourceAsStream(schema + ".ddl")
.
Every line in the specified .ddl file is executed separately by calling
java.sql.Statement.execute(String)
where every occurrence of the
the string "${schemaObjectPrefix}"
has been replaced with the
value of the property schemaObjectPrefix
.
The following is a fragment from a sample configuration using MySQL:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager"> <param name="driver" value="com.mysql.jdbc.Driver"/> <param name="url" value="jdbc:mysql:///test?autoReconnect=true"/> <param name="schema" value="mysql"/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager>The following is a fragment from a sample configuration using Daffodil One$DB Embedded:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager"> <param name="driver" value="in.co.daffodil.db.jdbc.DaffodilDBDriver"/> <param name="url" value="jdbc:daffodilDB_embedded:${wsp.name};path=${wsp.home}/../../databases;create=true"/> <param name="user" value="daffodil"/> <param name="password" value="daffodil"/> <param name="schema" value="daffodil"/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager>The following is a fragment from a sample configuration using DB2:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager"> <param name="driver" value="com.ibm.db2.jcc.DB2Driver"/> <param name="url" value="jdbc:db2:test"/> <param name="schema" value="db2"/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager>The following is a fragment from a sample configuration using MSSQL:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager"> <param name="driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> <param name="url" value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=test;SelectMethod=Cursor;"/> <param name="schema" value="mssql"/> <param name="user" value="sa"/> <param name="password" value=""/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager>The following is a fragment from a sample configuration using Ingres:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager"> <param name="driver" value="com.ingres.jdbc.IngresDriver"/> <param name="url" value="jdbc:ingres://localhost:II7/test"/> <param name="schema" value="ingres"/> <param name="user" value="ingres"/> <param name="password" value="ingres"/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager>The following is a fragment from a sample configuration using PostgreSQL:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager"> <param name="driver" value="org.postgresql.Driver"/> <param name="url" value="jdbc:postgresql://localhost/test"/> <param name="schema" value="postgresql"/> <param name="user" value="postgres"/> <param name="password" value="postgres"/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager>JNDI can be used to get the connection. In this case, use the javax.naming.InitialContext as the driver, and the JNDI name as the URL. If the user and password are configured in the JNDI resource, they should not be configured here. Example JNDI settings:
<param name="driver" value="javax.naming.InitialContext" /> <param name="url" value="java:comp/env/jdbc/Test" />See also
DerbyPersistenceManager
, OraclePersistenceManager
.Modifier and Type | Field and Description |
---|---|
protected String |
driver
Deprecated.
|
protected String |
password
Deprecated.
|
protected String |
url
Deprecated.
|
protected String |
user
Deprecated.
|
autoReconnect, blobDeleteSQL, blobFS, blobInsertSQL, blobSelectExistSQL, blobSelectSQL, blobStore, blobUpdateSQL, con, externalBLOBs, INITIAL_BUFFER_SIZE, initialized, nodeReferenceDeleteSQL, nodeReferenceInsertSQL, nodeReferenceSelectExistSQL, nodeReferenceSelectSQL, nodeReferenceUpdateSQL, nodeStateDeleteSQL, nodeStateInsertSQL, nodeStateSelectExistSQL, nodeStateSelectSQL, nodeStateUpdateSQL, propertyStateDeleteSQL, propertyStateInsertSQL, propertyStateSelectExistSQL, propertyStateSelectSQL, propertyStateUpdateSQL, schema, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix, SLEEP_BEFORE_RECONNECT
Constructor and Description |
---|
SimpleDbPersistenceManager()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected Connection |
getConnection()
Deprecated.
Returns a JDBC connection acquired using the JDBC
DriverManager . |
String |
getDriver()
Deprecated.
|
String |
getPassword()
Deprecated.
|
String |
getUrl()
Deprecated.
|
String |
getUser()
Deprecated.
|
void |
setConnectionFactory(ConnectionFactory connnectionFactory)
Deprecated.
|
void |
setDriver(String driver)
Deprecated.
|
void |
setPassword(String password)
Deprecated.
|
void |
setUrl(String url)
Deprecated.
|
void |
setUser(String user)
Deprecated.
|
buildSQLStatements, checkSchema, close, closeConnection, closeResultSet, closeStatement, createSchemaSql, destroy, destroy, destroy, executeStmt, exists, exists, existsReferencesTo, getSchema, getSchemaDDL, getSchemaObjectPrefix, init, initConnection, initPreparedStatements, isExternalBLOBs, isSchemaCheckEnabled, load, load, loadReferencesTo, logException, prepareSchemaObjectPrefix, reestablishConnection, resetStatement, setExternalBLOBs, setExternalBLOBs, setSchema, setSchemaCheckEnabled, setSchemaObjectPrefix, store, store, store, store
checkConsistency, createNew, createNew
protected String driver
protected String url
protected String user
protected String password
public void setConnectionFactory(ConnectionFactory connnectionFactory)
setConnectionFactory
in interface DatabaseAware
public String getUrl()
public void setUrl(String url)
public String getUser()
public void setUser(String user)
public String getPassword()
public void setPassword(String password)
public String getDriver()
public void setDriver(String driver)
protected Connection getConnection() throws javax.jcr.RepositoryException, SQLException
DriverManager
.getConnection
in class DatabasePersistenceManager
SQLException
javax.jcr.RepositoryException
- if the driver could not be loadedSQLException
- if the connection could not be establishedDatabasePersistenceManager.getConnection()
Copyright © 2004-2020 The Apache Software Foundation. All Rights Reserved.