Package org.opencms.setup
Class CmsSetupDb
- java.lang.Object
-
- org.opencms.setup.CmsSetupDb
-
public class CmsSetupDb extends java.lang.Object
Helper class to call database setup scripts.- Since:
- 6.0.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
SETUP_DATA_FOLDER
The folder where to read the setup data from.static java.lang.String
SETUP_FOLDER
The folder where the setup wizard is located.
-
Constructor Summary
Constructors Constructor Description CmsSetupDb(java.lang.String basePath)
Creates a new CmsSetupDb object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
checkVariables(java.lang.String db)
Returns an optional warning message if needed,null
if not.void
clearErrors()
Clears the error messages stored internally.void
closeConnection()
Closes the internal connection to the database.void
createDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the create database script for the given database.void
createDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the create database script for the given database.void
createTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the create tables script for the given database.void
createTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the create tables script for the given database.void
dropDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the drop script for the given database.void
dropDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the drop script for the given database.void
dropTables(java.lang.String database)
Calls the drop tables script for the given database.void
dropTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the drop tables script for the given database.void
dropTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the drop tables script for the given database.CmsSetupDBWrapper
executeSqlStatement(java.lang.String query, java.util.Map<java.lang.String,java.lang.String> replacer)
Creates and executes a database statement from a String returning the result set.CmsSetupDBWrapper
executeSqlStatement(java.lang.String query, java.util.Map<java.lang.String,java.lang.String> replacer, java.util.List<java.lang.Object> params)
Creates and executes a database statement from a String returning the result set.java.sql.Connection
getConnection()
Returns the connection.java.util.List<java.lang.String>
getErrors()
Returns a Vector of Error messages.boolean
hasTableOrColumn(java.lang.String table, java.lang.String column)
Checks if the given table, column or combination of both is available in the database in case insensitive way.boolean
hasTableOrColumnCaseSensitive(java.lang.String table, java.lang.String column)
Checks if the given table, column or combination of both is available in the database in a case sensitive way.boolean
noErrors()
Checks if internal errors occurred.void
setConnection(java.lang.String DbDriver, java.lang.String DbConStr, java.lang.String DbConStrParams, java.lang.String DbUser, java.lang.String DbPwd)
Creates a new internal connection to the database.void
setConnection(java.lang.String DbDriver, java.lang.String DbConStr, java.lang.String DbConStrParams, java.lang.String DbUser, java.lang.String DbPwd, boolean logErrors)
Creates a new internal connection to the database.void
setConnection(java.sql.Connection conn)
Sets a new internal connection to the database.void
updateDatabase(java.lang.String updateScript, java.util.Map<java.lang.String,java.lang.String> replacers)
Calls an update script.void
updateDatabase(java.lang.String updateScript, java.util.Map<java.lang.String,java.lang.String> replacers, boolean abortOnError)
Calls an update script.int
updateSqlStatement(java.lang.String query, java.util.Map<java.lang.String,java.lang.String> replacer, java.util.List<java.lang.Object> params)
Creates and executes a database statment from a String.
-
-
-
Field Detail
-
SETUP_DATA_FOLDER
public static final java.lang.String SETUP_DATA_FOLDER
The folder where to read the setup data from.- See Also:
- Constant Field Values
-
SETUP_FOLDER
public static final java.lang.String SETUP_FOLDER
The folder where the setup wizard is located.
-
-
Constructor Detail
-
CmsSetupDb
public CmsSetupDb(java.lang.String basePath)
Creates a new CmsSetupDb object.- Parameters:
basePath
- the location of the setup scripts
-
-
Method Detail
-
checkVariables
public java.lang.String checkVariables(java.lang.String db)
Returns an optional warning message if needed,null
if not.- Parameters:
db
- the selected database key- Returns:
- html warning, or
null
if no warning
-
clearErrors
public void clearErrors()
Clears the error messages stored internally.
-
closeConnection
public void closeConnection()
Closes the internal connection to the database.
-
createDatabase
public void createDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the create database script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop script
-
createDatabase
public void createDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the create database script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop scriptabortOnError
- indicates if the script is aborted if an error occurs
-
createTables
public void createTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the create tables script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop script
-
createTables
public void createTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the create tables script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop scriptabortOnError
- indicates if the script is aborted if an error occurs
-
dropDatabase
public void dropDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the drop script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop script
-
dropDatabase
public void dropDatabase(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the drop script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop scriptabortOnError
- indicates if the script is aborted if an error occurs
-
dropTables
public void dropTables(java.lang.String database)
Calls the drop tables script for the given database.- Parameters:
database
- the name of the database
-
dropTables
public void dropTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer)
Calls the drop tables script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop script
-
dropTables
public void dropTables(java.lang.String database, java.util.Map<java.lang.String,java.lang.String> replacer, boolean abortOnError)
Calls the drop tables script for the given database.- Parameters:
database
- the name of the databasereplacer
- the replacements to perform in the drop scriptabortOnError
- indicates if the script is aborted if an error occurs
-
executeSqlStatement
public CmsSetupDBWrapper executeSqlStatement(java.lang.String query, java.util.Map<java.lang.String,java.lang.String> replacer) throws java.sql.SQLException
Creates and executes a database statement from a String returning the result set.- Parameters:
query
- the query to executereplacer
- the replacements to perform in the script- Returns:
- the result set of the query
- Throws:
java.sql.SQLException
- if something goes wrong
-
executeSqlStatement
public CmsSetupDBWrapper executeSqlStatement(java.lang.String query, java.util.Map<java.lang.String,java.lang.String> replacer, java.util.List<java.lang.Object> params) throws java.sql.SQLException
Creates and executes a database statement from a String returning the result set.- Parameters:
query
- the query to executereplacer
- the replacements to perform in the scriptparams
- the list of parameters for the statement- Returns:
- the result set of the query
- Throws:
java.sql.SQLException
- if something goes wrong
-
getConnection
public java.sql.Connection getConnection()
Returns the connection.- Returns:
- the connection
-
getErrors
public java.util.List<java.lang.String> getErrors()
Returns a Vector of Error messages.- Returns:
- all error messages collected internally
-
hasTableOrColumn
public boolean hasTableOrColumn(java.lang.String table, java.lang.String column)
Checks if the given table, column or combination of both is available in the database in case insensitive way.- Parameters:
table
- the sought tablecolumn
- the sought column- Returns:
- true if the requested table/column is available, false if not
-
hasTableOrColumnCaseSensitive
public boolean hasTableOrColumnCaseSensitive(java.lang.String table, java.lang.String column)
Checks if the given table, column or combination of both is available in the database in a case sensitive way.- Parameters:
table
- the sought tablecolumn
- the sought column- Returns:
- true if the requested table/column is available, false if not
-
noErrors
public boolean noErrors()
Checks if internal errors occurred.- Returns:
- true if internal errors occurred
-
setConnection
public void setConnection(java.sql.Connection conn)
Sets a new internal connection to the database.- Parameters:
conn
- the connection to use
-
setConnection
public void setConnection(java.lang.String DbDriver, java.lang.String DbConStr, java.lang.String DbConStrParams, java.lang.String DbUser, java.lang.String DbPwd)
Creates a new internal connection to the database.- Parameters:
DbDriver
- JDBC driver class nameDbConStr
- JDBC connect URLDbConStrParams
- JDBC connect URL params, or nullDbUser
- JDBC database userDbPwd
- JDBC database password
-
setConnection
public void setConnection(java.lang.String DbDriver, java.lang.String DbConStr, java.lang.String DbConStrParams, java.lang.String DbUser, java.lang.String DbPwd, boolean logErrors)
Creates a new internal connection to the database.- Parameters:
DbDriver
- JDBC driver class nameDbConStr
- JDBC connect URLDbConStrParams
- JDBC connect URL params, or nullDbUser
- JDBC database userDbPwd
- JDBC database passwordlogErrors
- if set to 'true', errors are written to the log file
-
updateDatabase
public void updateDatabase(java.lang.String updateScript, java.util.Map<java.lang.String,java.lang.String> replacers)
Calls an update script.- Parameters:
updateScript
- the update script codereplacers
- the replacers to use in the script code
-
updateDatabase
public void updateDatabase(java.lang.String updateScript, java.util.Map<java.lang.String,java.lang.String> replacers, boolean abortOnError)
Calls an update script.- Parameters:
updateScript
- the update script codereplacers
- the replacers to use in the script codeabortOnError
- indicates if the script is aborted if an error occurs
-
updateSqlStatement
public int updateSqlStatement(java.lang.String query, java.util.Map<java.lang.String,java.lang.String> replacer, java.util.List<java.lang.Object> params) throws java.sql.SQLException
Creates and executes a database statment from a String.- Parameters:
query
- the query to executereplacer
- the replacements to perform in the scriptparams
- the list of parameters for the statement- Returns:
- the result set of the query
- Throws:
java.sql.SQLException
- if something goes wrong
-
-