mirror of
https://github.com/alkacon/opencms-core.git
synced 2026-01-13 05:37:08 +00:00
184 lines
5.4 KiB
Java
184 lines
5.4 KiB
Java
/*
|
|
* This library is part of OpenCms -
|
|
* the Open Source Content Management System
|
|
*
|
|
* Copyright (c) Alkacon Software GmbH & Co. KG (https://www.alkacon.com)
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* For further information about Alkacon Software GmbH & Co. KG, please see the
|
|
* company website: https://www.alkacon.com
|
|
*
|
|
* For further information about OpenCms, please see the
|
|
* project website: https://www.opencms.org
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
package org.opencms.setup;
|
|
|
|
import org.opencms.util.CmsDataTypeUtil;
|
|
|
|
import java.io.IOException;
|
|
import java.sql.Connection;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.ResultSet;
|
|
import java.sql.SQLException;
|
|
import java.sql.Statement;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Wrapper to encapsulate, connection, statement and result set for the setup
|
|
* and update wizard.<p>
|
|
*/
|
|
public class CmsSetupDBWrapper {
|
|
|
|
/** the statement to use in the db wrapper. */
|
|
private Statement m_statement;
|
|
|
|
/** the connection to use in the db wrapper. */
|
|
private Connection m_connection;
|
|
|
|
/** the result set returned by the db wrapper. */
|
|
private ResultSet m_resultset;
|
|
|
|
/** the prepared statement. */
|
|
private PreparedStatement m_preparedStatement;
|
|
|
|
/**
|
|
* Constructor, creates a new CmsSetupDBWrapper.<p>
|
|
* @param con the connection to use in this db wrapper.
|
|
*/
|
|
public CmsSetupDBWrapper(Connection con) {
|
|
|
|
m_connection = con;
|
|
}
|
|
|
|
/**
|
|
* Closes result set, and statement. <p>
|
|
*/
|
|
public void close() {
|
|
|
|
// result set
|
|
if (m_resultset != null) {
|
|
try {
|
|
m_resultset.close();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
|
|
}
|
|
}
|
|
// statement
|
|
if (m_statement != null) {
|
|
try {
|
|
m_statement.close();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
|
|
}
|
|
}
|
|
// prepared statement
|
|
if (m_preparedStatement != null) {
|
|
try {
|
|
m_preparedStatement.close();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Creates a new SQL Statement on the connection of this DB wrapper.<p>
|
|
* @throws SQLException if statement cannot be created
|
|
*/
|
|
public void createStatement() throws SQLException {
|
|
|
|
m_statement = m_connection.createStatement();
|
|
}
|
|
|
|
/**
|
|
* Creates a new SQL Statement on the connection of this DB wrapper.<p>
|
|
*
|
|
* @param query the DB query to use
|
|
* @param params List of additional parameters
|
|
*
|
|
* @throws SQLException if statement cannot be created
|
|
*/
|
|
public void createPreparedStatement(String query, List<Object> params) throws SQLException {
|
|
|
|
m_preparedStatement = m_connection.prepareStatement(query);
|
|
|
|
// Check the params
|
|
if (params != null) {
|
|
for (int i = 0; i < params.size(); i++) {
|
|
Object item = params.get(i);
|
|
|
|
// Check if the parameter is a string
|
|
if (item instanceof String) {
|
|
m_preparedStatement.setString(i + 1, (String)item);
|
|
}
|
|
if (item instanceof Integer) {
|
|
Integer number = (Integer)item;
|
|
m_preparedStatement.setInt(i + 1, number.intValue());
|
|
}
|
|
if (item instanceof Long) {
|
|
Long longNumber = (Long)item;
|
|
m_preparedStatement.setLong(i + 1, longNumber.longValue());
|
|
}
|
|
|
|
// If item is none of types above set the statement to use the bytes
|
|
if (!(item instanceof Integer) && !(item instanceof String) && !(item instanceof Long)) {
|
|
try {
|
|
m_preparedStatement.setBytes(i + 1, CmsDataTypeUtil.dataSerialize(item));
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Executes a query on the connection and statement of this db wrapper.<p>
|
|
*
|
|
* @param query the query to execute
|
|
*
|
|
* @throws SQLException if statement cannot be created
|
|
*/
|
|
public void excecuteQuery(String query) throws SQLException {
|
|
|
|
m_resultset = m_statement.executeQuery(query);
|
|
}
|
|
|
|
/**
|
|
* Executes a query on the connection and prepared statement of this db wrapper.<p>
|
|
* @throws SQLException if statement cannot be created
|
|
*/
|
|
public void excecutePreparedQuery() throws SQLException {
|
|
|
|
m_resultset = m_preparedStatement.executeQuery();
|
|
}
|
|
|
|
/**
|
|
* Returns the res.<p>
|
|
*
|
|
* @return the res
|
|
*/
|
|
public ResultSet getResultSet() {
|
|
|
|
return m_resultset;
|
|
}
|
|
} |