Remove a lot of old dead code

master
Vitaliy Filippov 2015-12-21 00:49:05 +03:00
parent 133fc66358
commit 9a3aba6ed7
14 changed files with 127 additions and 1846 deletions

View File

@ -35,8 +35,6 @@ import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import org.glassfish.openesb.databasebc.model.runtime.DBConnectionInfo;
/** /**
* author * author
@ -79,7 +77,6 @@ public class EndpointBean implements Serializable {
private String mTableName = null; private String mTableName = null;
private EndpointStatus mEndpointStatus; private EndpointStatus mEndpointStatus;
private List mrecordList = new ArrayList(); private List mrecordList = new ArrayList();
private DBConnectionInfo mDBConnectionInfo;
// throttling related info // throttling related info
private int maxConcurrencyLimit = -1; private int maxConcurrencyLimit = -1;
@ -193,14 +190,6 @@ public class EndpointBean implements Serializable {
public String getTableName() { public String getTableName() {
return mTableName; return mTableName;
} }
public void setDBInfo(DBConnectionInfo dbInfo){
this.mDBConnectionInfo = dbInfo;
}
public DBConnectionInfo getDBInfo(){
return this.mDBConnectionInfo;
}
public void setMaxConcurrencyLimit(int maxConcurrencyLimit){ public void setMaxConcurrencyLimit(int maxConcurrencyLimit){
this.maxConcurrencyLimit = maxConcurrencyLimit; this.maxConcurrencyLimit = maxConcurrencyLimit;

View File

@ -72,13 +72,13 @@ import javax.xml.parsers.ParserConfigurationException;
import com.sun.jbi.internationalization.Messages; import com.sun.jbi.internationalization.Messages;
import org.glassfish.openesb.databasebc.model.metadata.DBMetaData; import org.glassfish.openesb.databasebc.model.metadata.DBMetaData;
import org.glassfish.openesb.databasebc.model.runtime.DBConnectionInfo;
import org.glassfish.openesb.databasebc.model.runtime.DatabaseModel; import org.glassfish.openesb.databasebc.model.runtime.DatabaseModel;
import org.glassfish.openesb.databasebc.model.runtime.DatabaseModelImpl; import org.glassfish.openesb.databasebc.model.runtime.DatabaseModelImpl;
import org.glassfish.openesb.databasebc.model.runtime.Db2DataAccess; import org.glassfish.openesb.databasebc.model.runtime.Db2DataAccess;
import org.glassfish.openesb.databasebc.model.runtime.DerbyDataAccess; import org.glassfish.openesb.databasebc.model.runtime.DerbyDataAccess;
import org.glassfish.openesb.databasebc.model.runtime.OracleDataAccess; import org.glassfish.openesb.databasebc.model.runtime.OracleDataAccess;
import org.glassfish.openesb.databasebc.model.runtime.SqlServerDataAccess; import org.glassfish.openesb.databasebc.model.runtime.SqlServerDataAccess;
import org.glassfish.openesb.databasebc.model.runtime.MysqlDataAccess;
import com.sun.jbi.nms.exchange.ExchangePattern; import com.sun.jbi.nms.exchange.ExchangePattern;
import com.sun.jbi.common.qos.messaging.MessagingChannel; import com.sun.jbi.common.qos.messaging.MessagingChannel;
@ -91,16 +91,6 @@ import net.java.hulp.measure.Probe;
* author : Venkat P Process requests received from the External Database * author : Venkat P Process requests received from the External Database
*/ */
public class InboundMessageProcessor implements Runnable, MessageExchangeReplyListener, RedeliveryListener { public class InboundMessageProcessor implements Runnable, MessageExchangeReplyListener, RedeliveryListener {
private static final String DERBY_PROD_NAME = "DERBY";
private static final String ORACLE_PROD_NAME = "ORACLE";
private static final String SQLSERVER_PROD_NAME = "SQLSERVER";
private static final String DB2_PROD_NAME = "DB2";
private static final String JDBC_PROD_NAME = "JDBC";
private static final Messages mMessages = Messages.getMessages(InboundMessageProcessor.class); private static final Messages mMessages = Messages.getMessages(InboundMessageProcessor.class);
private static final Logger mLogger = Messages.getLogger(InboundMessageProcessor.class); private static final Logger mLogger = Messages.getLogger(InboundMessageProcessor.class);
@ -137,16 +127,11 @@ public class InboundMessageProcessor implements Runnable, MessageExchangeReplyLi
private String mMarkColumnValue = null; private String mMarkColumnValue = null;
private String mPKType = null;
private String mFlagColumnType = null;
private String mSchemaName = null; private String mSchemaName = null;
private String mXAEnabled = null; private String mXAEnabled = null;
private String mTableName = null; private String mTableName = null;
private String mDbName = null;
private String mPollingPostProcessing = null; private String mPollingPostProcessing = null;
@ -356,14 +341,15 @@ public class InboundMessageProcessor implements Runnable, MessageExchangeReplyLi
getTransactionManager().begin(); getTransactionManager().begin();
} }
DatabaseModel dbDataAccessObject = getDataAccessObject(meta);
mSelectSQL = dbDataAccessObject.generateSelectQuery(mSelectSQL, mTableName);
epb.setTableName(mTableName); epb.setTableName(mTableName);
connection = getDatabaseConnection(jndiName); connection = getDatabaseConnection(jndiName);
if (mDbName == null){ if (mSelectSQL == null || mSelectSQL.trim().equals("")) {
mDbName = connection.getMetaData().getDatabaseProductName().toLowerCase(); DatabaseModel dbDataAccessObject = getDataAccessObject(connection);
int numberOfRecords = meta.getJDBCOperationInput().getNumberOfRecords();
mSelectSQL = dbDataAccessObject.generateSelectQuery(mTableName, numberOfRecords);
} }
String dbName = connection.getMetaData().getDatabaseProductName().toLowerCase();
if (epb.isClustered()) { if (epb.isClustered()) {
connection.setAutoCommit(false); connection.setAutoCommit(false);
// In cluster environment, adding a simple "FOR UPDATE" to the poll query is enough // In cluster environment, adding a simple "FOR UPDATE" to the poll query is enough
@ -398,7 +384,7 @@ public class InboundMessageProcessor implements Runnable, MessageExchangeReplyLi
normalizer.setInboundExchangeProcessRecordsMap(mMapInboundExchangesProcessRecords); normalizer.setInboundExchangeProcessRecordsMap(mMapInboundExchangesProcessRecords);
normalizer.setRecordsProcessedList(mProcessedList); normalizer.setRecordsProcessedList(mProcessedList);
inMsg = normalizer.normalizeSelectInbound(rs, exchange, meta, epb, mPKName,mDbName); inMsg = normalizer.normalizeSelectInbound(rs, exchange, meta, epb, mPKName, dbName);
rowCount = normalizer.mRowCount; rowCount = normalizer.mRowCount;
if(normalizationMeasurement != null){ if(normalizationMeasurement != null){
@ -502,13 +488,8 @@ public class InboundMessageProcessor implements Runnable, MessageExchangeReplyLi
List<String> bind = new ArrayList<String>(); List<String> bind = new ArrayList<String>();
if (lSelectSQL.indexOf("$WHERE") >= 0) { if (lSelectSQL.indexOf("$WHERE") >= 0) {
if (mMarkColumnName != null && !mMarkColumnName.equals("")) { if (mMarkColumnName != null && !mMarkColumnName.equals("")) {
if (mFlagColumnType != null) { where = "("+mMarkColumnName+" != ? OR "+mMarkColumnName+" IS NULL)";
where = "("+mMarkColumnName+" != ? OR "+mMarkColumnName+" IS NULL)"; bind.add(mMarkColumnValue);
bind.add(mMarkColumnValue);
} else {
final String msg = InboundMessageProcessor.mMessages.getString("DBBC_E00638.IMP_Error_IVALID_ColumnName") + mMarkColumnName;
throw new MessagingException(msg, new NamingException());
}
} }
lSelectSQL = lSelectSQL.replace("$WHERE", where.equals("") ? "1=1" : where); lSelectSQL = lSelectSQL.replace("$WHERE", where.equals("") ? "1=1" : where);
} }
@ -543,90 +524,20 @@ public class InboundMessageProcessor implements Runnable, MessageExchangeReplyLi
return rs; return rs;
} }
/** public DatabaseModel getDataAccessObject(Connection connection) throws SQLException {
* @return String prdtName = DBMetaData.getDBType(connection);
* @throws MessagingException if (prdtName == DBMetaData.DERBY) {
*/ return DerbyDataAccess.getInstance();
public DatabaseModel getDataAccessObject(OperationMetaData meta) throws MessagingException { } else if (prdtName == DBMetaData.ORACLE) {
DatabaseModel objDataAccess = null; return OracleDataAccess.getInstance();
String jndiName = null; } else if (prdtName == DBMetaData.DB2) {
String prdtName = null; return Db2DataAccess.getInstance();
String catalog = null; } else if (prdtName == DBMetaData.SQLSERVER) {
jndiName = epb.getValue(EndpointBean.JDBC_DATABASE_JNDI_NAME); return SqlServerDataAccess.getInstance();
Connection connection = null; } else if (prdtName == DBMetaData.MYSQL) {
ResultSet rs = null; return MysqlDataAccess.getInstance();
} else {
try { return DatabaseModelImpl.getInstance();
connection = getDatabaseConnection(jndiName);
prdtName = DBMetaData.getDBType(connection);
rs = connection.getMetaData().getColumns(catalog, mSchemaName, mTableName, "%");
int noofColCounter = -1;
while (rs.next()) {
noofColCounter++;
final String colName = rs.getString("COLUMN_NAME");
if (colName.equalsIgnoreCase(meta.getJDBCSql().getPKName())) {
final String defaultValue = rs.getString("COLUMN_DEF");
final int sqlTypeCode = rs.getInt("DATA_TYPE");
final String sqlType = DBMetaData.getSQLTypeDescription(sqlTypeCode);
mPKType = sqlType;
}
if (colName.equalsIgnoreCase(meta.getJDBCSql().getMarkColumnName())) {
final String defaultValue = rs.getString("COLUMN_DEF");
final int sqlTypeCode = rs.getInt("DATA_TYPE");
final String sqlType = DBMetaData.getSQLTypeDescription(sqlTypeCode);
mFlagColumnType = sqlType;
}
}
if(noofColCounter < 0 ){
final String msg = InboundMessageProcessor.mMessages.getString("DBBC_E00636.IMP_Table_NotExist");
throw new MessagingException(msg, new NamingException());
}
if (mPKType == null) {
final String msg = InboundMessageProcessor.mMessages.getString("DBBC_E00637.IMP_PrimaryKey_Error");
throw new MessagingException(msg, new NamingException());
}
if (prdtName.equalsIgnoreCase(InboundMessageProcessor.DERBY_PROD_NAME)) {
return objDataAccess = DerbyDataAccess.getInstance();
} else if (prdtName.equalsIgnoreCase(InboundMessageProcessor.ORACLE_PROD_NAME)) {
return objDataAccess = OracleDataAccess.getInstance();
} else if (prdtName.equalsIgnoreCase(InboundMessageProcessor.DB2_PROD_NAME)) {
return objDataAccess = Db2DataAccess.getInstance();
} else if (prdtName.equalsIgnoreCase(InboundMessageProcessor.SQLSERVER_PROD_NAME)) {
return objDataAccess = SqlServerDataAccess.getInstance();
} else if (prdtName.equalsIgnoreCase(InboundMessageProcessor.JDBC_PROD_NAME)) {
return objDataAccess = DatabaseModelImpl.getInstance();
} else {
return objDataAccess = new DatabaseModelImpl();
}
} catch (final NamingException ex) {
final String msg = InboundMessageProcessor.mMessages.getString("DBBC_E00635.IMP_Error_Lookup") + jndiName;
mLogger.log(Level.SEVERE, msg, ex);
throw new MessagingException(msg, ex);
} catch (final SQLException ex) {
final String msg = InboundMessageProcessor.mMessages.getString("DBBC_E00639.IMP_Failed_Executing_SQL") +
"Reason: " + ex.getLocalizedMessage() + " SQLState: " + ex.getSQLState() + " ErrorCode: " + ex.getErrorCode();
mLogger.log(Level.SEVERE, msg, ex);
throw new MessagingException(msg, ex);
} catch (final Exception ex) {
final String msg = InboundMessageProcessor.mMessages.getString("DBBC_E00639.IMP_Failed_Executing_SQL");
throw new MessagingException(msg, ex);
} finally {
try {
if (rs != null) {
rs.close();
}
}catch(SQLException se){
mLogger.log(Level.SEVERE, mMessages.getString("DBBC_E11109.IMP_EXCEPTION_WHILE_CLOSING_THE_RS"), se);
}
try{
if (connection != null) {
connection.close();
}
}catch(SQLException se){
mLogger.log(Level.SEVERE, mMessages.getString("DBBC_E11111.IMP_EXCEPTION_WHILE_CLOSING_THE_CONNECTION"), se);
}
} }
} }

View File

@ -108,7 +108,7 @@ public class JDBCDenormalizer {
* @throws MessagingException * @throws MessagingException
*/ */
protected void denormalizeOutbound(final NormalizedMessage normalizedMessage, protected void denormalizeOutbound(final NormalizedMessage normalizedMessage,
String dbName, final String jndiName, final OperationMetaData opMetaData, final PreparedStatement ps) final String jndiName, final OperationMetaData opMetaData, final PreparedStatement ps)
throws MessagingException { throws MessagingException {
if (opMetaData != null) { if (opMetaData != null) {
final JDBCOperationInput mJdbcOperationInput = opMetaData. final JDBCOperationInput mJdbcOperationInput = opMetaData.
@ -120,7 +120,7 @@ public class JDBCDenormalizer {
Element element = Element element =
transformMessage(normalizedMessage, opMetaData); transformMessage(normalizedMessage, opMetaData);
if (element != null) if (element != null)
populatePreparedStatement(element, dbName, jndiName, opMetaData, ps); populatePreparedStatement(element, jndiName, opMetaData, ps);
} catch (final SQLException ex) { } catch (final SQLException ex) {
final String msg = final String msg =
JDBCDenormalizer.mMessages.getString( JDBCDenormalizer.mMessages.getString(
@ -411,7 +411,7 @@ public class JDBCDenormalizer {
* @throws MessagingException * @throws MessagingException
* @throws Exception * @throws Exception
*/ */
private void populatePreparedStatement(final Element tableElem, String dbName, String jndiName, private void populatePreparedStatement(final Element tableElem, String jndiName,
final OperationMetaData opMetaData, final PreparedStatement ps) final OperationMetaData opMetaData, final PreparedStatement ps)
throws SQLException, MessagingException, Exception { throws SQLException, MessagingException, Exception {
/* /*

View File

@ -56,7 +56,6 @@ import javax.xml.parsers.ParserConfigurationException;
import com.sun.jbi.internationalization.Messages; import com.sun.jbi.internationalization.Messages;
import javax.transaction.xa.XAResource; import javax.transaction.xa.XAResource;
import org.glassfish.openesb.databasebc.model.runtime.DBConnectionInfo;
import javax.sql.*; import javax.sql.*;
import javax.transaction.Transaction; import javax.transaction.Transaction;
import javax.transaction.TransactionManager; import javax.transaction.TransactionManager;
@ -87,7 +86,6 @@ public class OutboundMessageProcessor implements Runnable {
private MessageExchange mExchange; private MessageExchange mExchange;
private JDBCComponentContext mContext; private JDBCComponentContext mContext;
private Map mInboundExchanges; private Map mInboundExchanges;
DBConnectionInfo dbConnectionInfo;
XAConnection xaConnection = null; XAConnection xaConnection = null;
private String mXAEnabled = null; private String mXAEnabled = null;
Connection connection = null; Connection connection = null;
@ -128,7 +126,6 @@ public class OutboundMessageProcessor implements Runnable {
final DocumentBuilderFactory docBuilderFact = DocumentBuilderFactory. final DocumentBuilderFactory docBuilderFact = DocumentBuilderFactory.
newInstance(); newInstance();
mDocBuilder = docBuilderFact.newDocumentBuilder(); mDocBuilder = docBuilderFact.newDocumentBuilder();
dbConnectionInfo = new DBConnectionInfo();
} }
/** /**
@ -1623,8 +1620,7 @@ public class OutboundMessageProcessor implements Runnable {
eBean.getUniqueName(), eBean.getUniqueName(),
JDBCBindingLifeCycle.PERF_CAT_DENORMALIZATION); JDBCBindingLifeCycle.PERF_CAT_DENORMALIZATION);
denormalizer.denormalizeOutbound(nMsg, getDBName(eBean, nMsg), jndiName, denormalizer.denormalizeOutbound(nMsg, jndiName, opMetaData, ps);
opMetaData, ps);
if (denormalizationMeasurement != null) if (denormalizationMeasurement != null)
denormalizationMeasurement.end(); denormalizationMeasurement.end();
@ -1677,8 +1673,7 @@ public class OutboundMessageProcessor implements Runnable {
eBean.getUniqueName(), eBean.getUniqueName(),
JDBCBindingLifeCycle.PERF_CAT_DENORMALIZATION); JDBCBindingLifeCycle.PERF_CAT_DENORMALIZATION);
denormalizer.denormalizeOutbound(nMsg, getDBName(eBean, nMsg), jndiName, denormalizer.denormalizeOutbound(nMsg, jndiName, opMetaData, ps);
opMetaData, ps);
if (denormalizationMeasurement != null) if (denormalizationMeasurement != null)
denormalizationMeasurement.end(); denormalizationMeasurement.end();
@ -1737,8 +1732,7 @@ public class OutboundMessageProcessor implements Runnable {
eBean.getUniqueName(), eBean.getUniqueName(),
JDBCBindingLifeCycle.PERF_CAT_DENORMALIZATION); JDBCBindingLifeCycle.PERF_CAT_DENORMALIZATION);
denormalizer.denormalizeOutbound(nMsg, getDBName(eBean, nMsg), jndiName, denormalizer.denormalizeOutbound(nMsg, jndiName, opMetaData, ps);
opMetaData, ps);
if (denormalizationMeasurement != null) if (denormalizationMeasurement != null)
denormalizationMeasurement.end(); denormalizationMeasurement.end();
@ -2047,26 +2041,6 @@ public class OutboundMessageProcessor implements Runnable {
} }
} }
private String getDBName(EndpointBean eBean, NormalizedMessage nMsg)
throws javax.naming.NamingException, java.sql.SQLException {
if (eBean.getValue(EndpointBean.JDBC_DATABASE_JNDI_NAME) == null || eBean.
getValue(EndpointBean.JDBC_DATABASE_JNDI_NAME).equals(""))
return dbConnectionInfo.getDataBaseName(eBean.getValue(
EndpointBean.JDBC_DATABASE_URL), null, null);
else {
String jndiName = eBean.getValue(
EndpointBean.JDBC_DATABASE_JNDI_NAME);
if (nMsg.getProperty(
JDBCComponentContext.NM_PROP_DATABASEBC_CONNECTION_JNDI_NAME) != null)
jndiName = nMsg.getProperty(
JDBCComponentContext.NM_PROP_DATABASEBC_CONNECTION_JNDI_NAME).
toString();
return dbConnectionInfo.getDataBaseName(null, null,
(DataSource) getDataSourceFromContext(jndiName));
}
}
private void setErrorInExchange(MessageExchange ex, String faultCode, private void setErrorInExchange(MessageExchange ex, String faultCode,
String faultDetail, Exception e) { String faultDetail, Exception e) {
ex.setError(e); ex.setError(e);

View File

@ -121,6 +121,9 @@ public final class DBMetaData {
/** Database OTD type for Oracle */ /** Database OTD type for Oracle */
public static final String ORACLE = "ORACLE"; // NOI18N public static final String ORACLE = "ORACLE"; // NOI18N
/** Database OTD type for MySQL */
public static final String MYSQL = "MYSQL"; // NOI18N
/** Database OTD type for SQL Server */ /** Database OTD type for SQL Server */
public static final String SQLSERVER = "SQLSERVER"; // NOI18N public static final String SQLSERVER = "SQLSERVER"; // NOI18N
@ -232,26 +235,11 @@ public final class DBMetaData {
// String used in java.sql.DatabaseMetaData to indicate system tables. // String used in java.sql.DatabaseMetaData to indicate system tables.
private static final String VIEW = "VIEW"; // NOI18N private static final String VIEW = "VIEW"; // NOI18N
//private Connection dbconn; // db connection
//private DatabaseMetaData dbmeta; // db metadata
//private String errMsg; // error message
//private boolean checkPrepStmtMetaData = true; // indicates driver does not
// fully support finding prepared
// statement metadata
//private boolean errPrepStmtParameters = false; // error getting prep. stmt. parameters
//private boolean errPrepStmtResultSetColumns = false; // error getting prep. stmt. resultset
// columns // columns
private static final Logger mLogger = Logger.getLogger(DBMetaData.class.getName()); private static final Logger mLogger = Logger.getLogger(DBMetaData.class.getName());
private static final Messages mMessages = Messages.getMessages(DBMetaData.class); private static final Messages mMessages = Messages.getMessages(DBMetaData.class);
/** /**
* Gets the primary keys for a table. * Gets the primary keys for a table.
* *
@ -334,75 +322,6 @@ public final class DBMetaData {
} }
} }
/**
* Establishes a connection to the database.
*
* @param conn JDBC connection
* @throws Exception DOCUMENT ME!
*/
/*public void connectDB(final Connection conn) throws Exception {
this.errMsg = "";
if (conn == null) {
throw new IllegalArgumentException("Connection can't be null.");
}
this.dbconn = conn;
this.getDBMetaData();
}*/
/**
* Disconnects from the database.
*
* @throws Exception DOCUMENT ME!
*/
/*public void disconnectDB() throws Exception {
this.errMsg = "";
// close connection to database
try {
if (this.dbconn != null && !this.dbconn.isClosed()) {
this.dbconn.close();
this.dbconn = null;
}
} catch (final SQLException e) {
e.printStackTrace();
this.errMsg = e.getLocalizedMessage();
throw e;
}
}*/
/*private void getDBMetaData() throws Exception {
this.errMsg = "";
// get the metadata
try {
this.dbmeta = this.dbconn.getMetaData();
} catch (final SQLException e) {
e.printStackTrace();
this.errMsg = e.getLocalizedMessage();
throw e;
}
}*/
/**
* Returns the database product name
*
* @return String database product name
* @throws Exception DOCUMENT ME!
*/
/*public String getDBName() throws Exception {
String dbname = "";
this.errMsg = "";
// get the database product name
try {
dbname = this.dbmeta.getDatabaseProductName();
} catch (final SQLException e) {
e.printStackTrace();
this.errMsg = e.getLocalizedMessage();
throw e;
}
return dbname;
}*/
/** /**
* Returns the database OTD type. * Returns the database OTD type.
* *
@ -410,7 +329,7 @@ public final class DBMetaData {
* @return String Database OTD type * @return String Database OTD type
* @throws Exception DOCUMENT ME! * @throws Exception DOCUMENT ME!
*/ */
public static String getDBType(final Connection conn) throws Exception { public static String getDBType(final Connection conn) throws SQLException {
String dbtype = ""; String dbtype = "";
// get the database type based on the product name converted to lowercase // get the database type based on the product name converted to lowercase
@ -430,6 +349,9 @@ public final class DBMetaData {
} else if (dbname.indexOf("orac") > -1) { } else if (dbname.indexOf("orac") > -1) {
// Oracle // Oracle
dbtype = DBMetaData.ORACLE; dbtype = DBMetaData.ORACLE;
} else if (dbname.indexOf("mysql") > -1 || dbname.indexOf("mariadb") > -1) {
// MySQL
dbtype = DBMetaData.MYSQL;
} else if (dbname.indexOf("derby") > -1) { } else if (dbname.indexOf("derby") > -1) {
// derby // derby
dbtype = DBMetaData.DERBY; dbtype = DBMetaData.DERBY;

View File

@ -1,233 +0,0 @@
/*
* BEGIN_HEADER - DO NOT EDIT
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* https://open-jbi-components.dev.java.net/public/CDDLv1.0.html.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* HEADER in each file and include the License file at
* https://open-jbi-components.dev.java.net/public/CDDLv1.0.html.
* If applicable add the following below this CDDL HEADER,
* with the fields enclosed by brackets "[]" replaced with
* your own identifying information: Portions Copyright
* [year] [name of copyright owner]
*/
/*
* @(#)DBConnectionInfo.java
*
* Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
*
* END_HEADER - DO NOT EDIT
*/
package org.glassfish.openesb.databasebc.model.runtime;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import javax.sql.XADataSource;
import javax.jbi.component.ComponentContext;
import javax.xml.transform.*;
import org.glassfish.openesb.databasebc.EndpointBean;
/*
* This class encapsulates the DBConnection parameters
* while obtaining the connection and will help in identifying
* the
*/
public class DBConnectionInfo {
private String dbUrl;
private String serverName;
private int portNumber;
private String databaseOrSchemaName;
private String username;
private String password;
private int dbType;
private String driverName;
private String mjndiName;
public static final String JDBCDEF_TAG = "connectiondef";
DBConnectionInfo dbConnectionInfo;
private String XAEnabled = null;
public void buildConnectionInfo(String dbUrl) {
//Url format: jdbc:derby://localhost:1527/testDB;create=true
if (dbUrl.startsWith("jdbc:derby://")) {
dbType = DataBases.DERBY.ordinal();
dbUrl = dbUrl.substring("jdbc:derby://".length(), dbUrl.length());
final String[] array1 = dbUrl.split("/");
final String[] array2 = array1[0].split(":");
serverName = array2[0];
portNumber = Integer.valueOf(array2[1]).intValue();
databaseOrSchemaName = array1[1];
} else if (dbUrl.startsWith("jdbc:oracle:thin:@")) {
//jdbc:oracle:thin:@<server>[:<1521>]:<database_name>
dbType = DataBases.ORACLE.ordinal();
}else if (dbUrl.startsWith("jdbc:Seebeyond:db2://")) {
//jdbc:Seebeyond:db2://localhost:1433;DatabaseName=db2
dbType = DataBases.DB2.ordinal();
dbUrl = dbUrl.substring("jdbc:Seebeyond:db2://".length(), dbUrl.length());
final String[] array1 = dbUrl.split(";");
final String[] array2 = array1[0].split(":");
serverName = array2[0];
portNumber = Integer.valueOf(array2[1]).intValue();
databaseOrSchemaName = array1[1];
}else if (dbUrl.startsWith("jdbc:SeeBeyond:sqlserver://")) {
//jdbc:SeeBeyond:sqlserver://rpoon-xp.stc.com:1433;DatabaseName=dgdb
dbType = DataBases.SQLSERVER.ordinal();
dbUrl = dbUrl.substring("jdbc:SeeBeyond:sqlserver://".length(), dbUrl.length());
final String[] array1 = dbUrl.split(";");
final String[] array2 = array1[0].split(":");
serverName = array2[0];
portNumber = Integer.valueOf(array2[1]).intValue();
final String[] array3 = array1[1].split("=");
databaseOrSchemaName = array3[1];
}
}
/*
* This gets the database name based on either the dbUrl or XADataSource or DataSource
* that is available
* @param dbUrl
* @param xads
* @param ds
* @return String
* @throws SQLException
*/
public String getDataBaseName(final String dbUrl, final XADataSource xads, final DataSource ds)
throws SQLException {
Connection conn = null;
String dbName = null;
if (xads != null) {
conn = xads.getXAConnection().getConnection();
dbName = conn.getMetaData().getDatabaseProductName();
conn.close();
return dbName;
}
if (ds != null) {
conn = ds.getConnection();
dbName = conn.getMetaData().getDatabaseProductName();
conn.close();
return dbName;
}
if (dbUrl.contains("derby")) {
return "DERBY";
} else if (dbUrl.contains("oracle")) {
return "ORACLE";
}else if (dbUrl.contains("sqlserver")) {
return "SQLSERVER";
} else if (dbUrl.contains("db2")) {
return "DB2";
}
return null;
}
public String getDatabaseOrSchemaName() {
return databaseOrSchemaName;
}
public void setDatabaseOrSchemaName(final String databaseOrSchemaName) {
this.databaseOrSchemaName = databaseOrSchemaName;
}
public int getDbType() {
return dbType;
}
public void setDbType(final int dbType) {
this.dbType = dbType;
}
public String getDbUrl() {
return dbUrl;
}
public void setDbUrl(final String dbUrl) {
this.dbUrl = dbUrl;
}
public String getPassword() {
return password;
}
public void setPassword(final String password) {
this.password = password;
}
public int getPortNumber() {
return portNumber;
}
public void setPortNumber(final int portNumber) {
this.portNumber = portNumber;
}
public String getServerName() {
return serverName;
}
public void setServerName(final String serverName) {
this.serverName = serverName;
}
public String getUsername() {
return username;
}
public void setUsername(final String username) {
this.username = username;
}
public String getDriverName() {
return driverName;
}
public void setDriverName(final String driverName) {
this.driverName = driverName;
}
public String getJNDIName(){
return this.mjndiName;
}
public Object CreateDataSource(final ComponentContext componentContext,
final String jndiname, final EndpointBean epb, final String XAEnabled) throws Exception {
dbConnectionInfo = epb.getDBInfo();
final String dbURL = dbConnectionInfo.getDbUrl();
final String driverClass = dbConnectionInfo.getDriverName();
dbConnectionInfo.buildConnectionInfo(dbURL);
dbConnectionInfo.getDataBaseName(dbURL, null, null);
final String dbName = dbConnectionInfo.getDataBaseName(dbURL, null, null);
final DataBases dataBases = DataBases.valueOf(dbName);
dataBases.setDBConnectionInfo(dbConnectionInfo);
Object objDataSource = dataBases.buildDataSource();
this.mjndiName = dataBases.createAndBindJNDIDS(componentContext,objDataSource,jndiname,XAEnabled);
return objDataSource;
}
public String getXAEnabled() {
return XAEnabled;
}
public void setXAEnabled(String enabled) {
XAEnabled = enabled;
}
}

View File

@ -1,301 +0,0 @@
/*
* BEGIN_HEADER - DO NOT EDIT
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* https://open-jbi-components.dev.java.net/public/CDDLv1.0.html.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* HEADER in each file and include the License file at
* https://open-jbi-components.dev.java.net/public/CDDLv1.0.html.
* If applicable add the following below this CDDL HEADER,
* with the fields enclosed by brackets "[]" replaced with
* your own identifying information: Portions Copyright
* [year] [name of copyright owner]
*/
/*
* @(#)DataBases.java
*
* Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
*
* END_HEADER - DO NOT EDIT
*/
package org.glassfish.openesb.databasebc.model.runtime;
import com.sun.jbi.internationalization.Messages;
import java.lang.reflect.InvocationTargetException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jbi.component.ComponentContext;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.*;
import javax.sql.XADataSource;
public enum DataBases {
DERBY,ORACLE,DB2,SQLSERVER,VSAM,MYSQL;
DBConnectionInfo mdbConnectionInfo = null;
private static final Logger mLogger = Logger.getLogger(DataBases.class.getName());
private static final Messages mMessages = Messages.getMessages(DataBases.class);
public int dbType() {
return ordinal();
}
@Override
public String toString() {
switch (this) {
case DERBY:
return "DERBY";
case ORACLE:
return "ORACLE";
case DB2:
return "DB2";
case SQLSERVER:
return "SQLSERVER";
case VSAM:
return "VSAM";
case MYSQL:
return "MYSQL";
}
return null;
}
public Class getXADataSourceClass() throws ClassNotFoundException {
switch (this) {
case DERBY:
return Class.forName("org.apache.derby.jdbc.ClientXADataSource");
case ORACLE:
return Class.forName("oracle.jdbc.xa.client.OracleXADataSource");
case DB2:
return Class.forName("com.ibm.db2.jdbc.DB2XADataSource");
case SQLSERVER:
return Class.forName("com.ddtek.jdbcx.sqlserver.SQLServerDataSource");
}
return null;
}
public Class getDataSourceClass() throws ClassNotFoundException {
switch (this) {
case DERBY:
return Class.forName("org.apache.derby.jdbc.ClientDataSource");
case ORACLE:
return Class.forName("oracle.jdbc.pool.OracleDataSource");
case DB2:
return Class.forName("com.SeeBeyond.db2.jdbcx.db2.DB2DataSource");
case SQLSERVER:
return Class.forName("com.SeeBeyond.sqlserver.jdbcx.sqlserver.SQLServerDataSource");
}
return null;
}
public Object buildDataSource() throws ClassNotFoundException , Exception{
Class dsClass = null;
if (mdbConnectionInfo.getXAEnabled().equalsIgnoreCase("XATransaction"))
dsClass = getXADataSourceClass();
else
dsClass = getDataSourceClass();
return buildDataSource(dsClass);
}
public Object buildDataSource(final Class dsclass) throws ClassNotFoundException, Exception {
try {
final Object dataSourceInstance = dsclass.newInstance();
final Class[] stringParam = new Class[] {String.class};
final Class[] intParam = new Class[]{int.class};
if (this == DERBY) {
dsclass.getMethod("setServerName", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getServerName() });
dsclass
.getMethod("setPortNumber", new Class[] { int.class })
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getPortNumber() });
dsclass.getMethod("setDatabaseName", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getDatabaseOrSchemaName() });
dsclass.getMethod("setUser", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getUsername() });
dsclass.getMethod("setPassword", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getPassword() });
} else if (this == ORACLE) {
dsclass.getMethod("setURL", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getDbUrl()});
dsclass.getMethod("setUser", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getUsername() });
dsclass.getMethod("setPassword", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getPassword() });
} else if (this == DB2) {
dsclass.getMethod("setServerName", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getServerName()});
dsclass.getMethod("setPortNumber", intParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getPortNumber()});
dsclass.getMethod("setDatabaseName", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getDatabaseOrSchemaName()});
dsclass.getMethod("setUser", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getUsername() });
dsclass.getMethod("setPassword", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getPassword() });
} else if (this == SQLSERVER) {
dsclass.getMethod("setServerName", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getServerName()});
dsclass.getMethod("setPortNumber", intParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getPortNumber()});
dsclass.getMethod("setDatabaseName", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getDatabaseOrSchemaName()});
dsclass.getMethod("setUser", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getUsername() });
dsclass.getMethod("setPassword", stringParam)
.invoke(dataSourceInstance,
new Object[] { mdbConnectionInfo.getPassword() });
}
return dataSourceInstance;
} catch (final IllegalAccessException iae) {
mLogger.log(Level.SEVERE,"Illegal Access Exception While Dealing with Driver class",iae);
} catch (final NoSuchMethodException nsme) {
mLogger.log(Level.SEVERE,"No Such Method Exception While Dealing with Driver class",nsme);
} catch (final InvocationTargetException ite) {
mLogger.log(Level.SEVERE,"Invocation Target Exception While Dealing with Driver class",ite);
} catch (final InstantiationException ie) {
mLogger.log(Level.SEVERE," Exception While Instantiating the Driver class",ie);
}
return null;
}
/*public Object buildXADataSource() {
try {
final Class dsclass = getXADataSourceClass();
final Object dataSourceInstance = dsclass.newInstance();
final Class[] stringParam = new Class[] { String.class };
final Class[] stringParams = new Class[] {String.class,String.class};
if (this == DERBY) {
dsclass.getMethod("setServerName", stringParam)
.invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getServerName() });
dsclass.getMethod("setPortNumber", new Class[] { int.class })
.invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getPortNumber() });
dsclass.getMethod("setDatabaseName", stringParam)
.invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getDatabaseOrSchemaName() });
dsclass.getMethod("setUser", stringParam)
.invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getUsername() });
dsclass.getMethod("setPassword", stringParam)
.invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getPassword() });
} else if (this == ORACLE) {
dsclass.getMethod("setURL", stringParam).invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getDbUrl()});
dsclass.getMethod("setUser", stringParam)
.invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getUsername() });
dsclass.getMethod("setPassword", stringParam)
.invoke(dataSourceInstance,
new Object[] { dbConnectionInfo.getPassword() });
}
return dataSourceInstance;
} catch (final ClassNotFoundException cnfe) {
cnfe.getMessage();
} catch (final IllegalAccessException iae) {
} catch (final NoSuchMethodException nsme) {
} catch (final InvocationTargetException ite) {
} catch (final InstantiationException ie) {
}
return null;
}
*/
public void setDBConnectionInfo(final DBConnectionInfo dbConnectionInfo) {
this.mdbConnectionInfo = dbConnectionInfo;
}
public DataBases getValue(final String value) {
if (value.equalsIgnoreCase("DERBY")) {
return DERBY;
} else if (value.equalsIgnoreCase("ORACLE")) {
return ORACLE;
} else if (value.equalsIgnoreCase("VSAM")) {
return VSAM;
} else if (value.equalsIgnoreCase("DB2")) {
return DB2;
} else if (value.equalsIgnoreCase("SQLSERVER")) {
return SQLSERVER;
} else if (value.equalsIgnoreCase("MYSQL")) {
return MYSQL;
} else {
return null;
}
}
public DatabaseModel getDatabaseModel() {
switch (this) {
case DERBY:
return DerbyDataAccess.getInstance();
case ORACLE:
return OracleDataAccess.getInstance();
case DB2:
return Db2DataAccess.getInstance();
case SQLSERVER:
return SqlServerDataAccess.getInstance();
}
return DatabaseModelImpl.getInstance();
}
public String createAndBindJNDIDS(final ComponentContext componentContext,
Object datasource, final String jndiname, final String xaEnabled)
throws NamingException {
final InitialContext namingContext = componentContext.getNamingContext();
if(mdbConnectionInfo.getXAEnabled().equalsIgnoreCase("XATransaction")){
datasource =(XADataSource)datasource;
}else{
datasource =(DataSource)datasource;
}
if(lookup(jndiname,namingContext)){
namingContext.bind(jndiname, datasource);
}
return jndiname;
}
public boolean lookup(final String jndiname,final InitialContext namingContext) throws NamingException{
try{
namingContext.lookup(jndiname);
}catch(javax.naming.NameNotFoundException e){
return true;
}
return false;
}
}

View File

@ -36,10 +36,5 @@ package org.glassfish.openesb.databasebc.model.runtime;
* *
*/ */
public interface DatabaseModel { public interface DatabaseModel {
public String createQualifiedQuery(String souTable, String tarTable, public String generateSelectQuery(String tableName, int rowCount);
String flagName, String MarkColumnValue, String pkName, String Operation,String FlagColumnType)
throws Exception;
public String generateSelectQuery(String query, String tableName)
throws Exception;
} }

View File

@ -44,219 +44,15 @@ public class DatabaseModelImpl implements DatabaseModel {
private static final Logger mLogger = Messages.getLogger(DatabaseModelImpl.class); private static final Logger mLogger = Messages.getLogger(DatabaseModelImpl.class);
public DatabaseModelImpl(){ public DatabaseModelImpl(){
} }
private static final DatabaseModelImpl instance = new DatabaseModelImpl(); private static final DatabaseModelImpl instance = new DatabaseModelImpl();
public static final DatabaseModelImpl getInstance(){ public static final DatabaseModelImpl getInstance(){
return instance; return instance;
}
//@Override
public String createQualifiedQuery(final String souTable, final String tarTable,
final String flagName, final String markcolumnValue, final String pkName, final String operation,
final String FlagColumnType)
throws Exception {
String Sql = null;
try {
if (operation.equals("UPDATE")) {
if(FlagColumnType.equalsIgnoreCase("LONGVARCHAR") || FlagColumnType.equalsIgnoreCase("CHAR")
|| FlagColumnType.equalsIgnoreCase("VARCHAR")){
Sql = "update " + souTable + " set " + flagName + " = " +
"'"+markcolumnValue+"'"+ " where " + pkName;
}else{
Sql = "update " + souTable + " set " + flagName + " = " +
markcolumnValue + " where " + pkName;
}
} else if (operation.equals("DELETE")) {
Sql = "delete from " + souTable + " where " + pkName;
} else if (operation.equals("INSERT")) {
Sql = "insert into " + tarTable + " select * from " + souTable +
" where " + pkName;
} else if (operation.equals("SELECT")) {
Sql = "select * from " + souTable;
}
} catch (final Exception e) {
mLogger.log(Level.SEVERE,mMessages.getString("Derby_Create_Query"),e);
throw new Exception(mMessages.getString("Derby_Create_Query"), e);
}
return Sql;
} }
//@Override //@Override
public String generateSelectQuery(final String selectSql, final String TableName) public String generateSelectQuery(final String TableName, final int rowCount) {
throws Exception { return "SELECT * FROM " + TableName + " WHERE $WHERE FOR UPDATE";
String Sql = null;
if( (selectSql == null)
|| selectSql.trim().equals("") ) {
Sql = "select * from " + TableName;
return Sql;
} else {
return selectSql;
}
} }
} }
//public class DerbyDataAccess implements DatabaseModel{
// private String mtabName = null;
// private String mtrigName = null;
// private TableColumn[] mcolumns = null;
// private String mSchemaName = null;
// private String mMarkColumnName = null;
// private String mstageFlag = null;
// private static final Messages mMessages = Messages.getMessages(DerbyDataAccess.class);
// private static Logger mLogger = Messages.getLogger(DerbyDataAccess.class);
/**
* @param souTable
* @param schemaName
* @param flagName
*/
// public void init(Table souTable,String schemaName,String flagName,String stageFlag){
// mMarkColumnName = flagName;
// mstageFlag = stageFlag;
// setTableName(souTable.getName());
// setTriggerName(souTable.getName());
// mcolumns = souTable.getColumns();
// this.mSchemaName = schemaName;
// }
/**
* @throws Exception
*/
// public String createTableQuery() throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("create table ");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("\"" + this.mcolumns[i].getName() + "\"");
// sb.append(" ");
// sb.append(this.mcolumns[i].getSqlType());
// if ((this.mcolumns[i].getNumericPrecision() != 0)
// && ((this.mcolumns[i].getSqlType())
// .equalsIgnoreCase("VARCHAR"))) {
// sb.append("(");
// sb.append(this.mcolumns[i].getNumericPrecision());
// sb.append(")");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsPrimaryKey()) {
// sb.append("primary key");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsNullable()) {
// sb.append("not null");
// }
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
/**
* @param source
* @throws Exception
*/
// public String createTriggerQuery(String source) throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("CREATE TRIGGER ");
// sb.append(" ");
// sb.append(getTriggerName());
// sb.append(" ");
// sb.append("AFTER INSERT ON");
// sb.append(" ");
// sb.append(source);
// sb.append(" ");
// sb.append("REFERENCING NEW AS UPDATEDROW FOR EACH ROW MODE DB2SQL");
// sb.append(" ");
// sb.append("INSERT INTO");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("VALUES");
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("UPDATEDROW.");
// sb.append("\"");
// sb.append(this.mcolumns[i].getName());
// sb.append("\"");
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
//
// public String getTableName(){
// return (getSchemaName()+"."+this.mtabName);
// }
//
// public String getTriggerName(){
// return (getSchemaName()+"."+this.mtrigName);
// }
//
// public String getSchemaName(){
// return "\""+this.mSchemaName+"\"";
// }
//
// public void setTableName(String tabSource){
// mLogger.log(Level.INFO, "Flag Name" + mMarkColumnName);
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtabName = "\""+tabSource+"_jdbc_StaggingTable"+"\"";
// else
// this.mtabName = "\""+tabSource+"\"";
// }
//
// public void setTriggerName(String trigName){
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtrigName = "\""+trigName+"_jdbc_staggingTrigger"+"\"";
// else
// this.mtabName = "\""+trigName+"\"";
// }
/**
* @param souTable
* @param flagName
* @param pkName
* @param operation
* @throws Exception
*/
// public String createQualifiedQuery(String souTable, String flagName,
// String pkName, String operation) throws Exception {
// String Sql = null;
//
// try {
// if (operation.equals("UPDATE")) {
// Sql = "update " + souTable + " set " + flagName + " = 0 where"
// + souTable + "." + pkName;
// } else if (operation.equals("DELETE")) {
// Sql = "delete from " + souTable + " where " + souTable + "."
// + pkName ;
// } else if (operation.equals("INSERT")) {
// Sql = "insert into " + "\"" + souTable + "\"" + "." + "\""
// + flagName + "_jdbc_StaggingTable" + "\""
// + " select * from " + pkName;
// }
// } catch (Exception e) {
// throw new Exception( mMessages.getString("Derby_Create_Query"), e);
// }
// return Sql;
// }
//}

View File

@ -43,222 +43,18 @@ import java.util.logging.Logger;
public class Db2DataAccess implements DatabaseModel { public class Db2DataAccess implements DatabaseModel {
private static final Messages mMessages = Messages.getMessages(Db2DataAccess.class); private static final Messages mMessages = Messages.getMessages(Db2DataAccess.class);
private static final Logger mLogger = Messages.getLogger(Db2DataAccess.class); private static final Logger mLogger = Messages.getLogger(Db2DataAccess.class);
private Db2DataAccess(){
}
private static final Db2DataAccess instance = new Db2DataAccess(); private static final Db2DataAccess instance = new Db2DataAccess();
private Db2DataAccess(){
}
public static final Db2DataAccess getInstance(){ public static final Db2DataAccess getInstance(){
return instance; return instance;
} }
//@Override //@Override
public String createQualifiedQuery(final String souTable, final String tarTable, public String generateSelectQuery(final String tableName, final int rowCount) {
final String flagName, final String markcolumnValue, final String pkName, final String operation, return "SELECT * FROM " + tableName + " WHERE $WHERE" +
final String FlagColumnType) (rowCount > 0 ? " FETCH FIRST "+rowCount+" ROWS ONLY" : "") + " FOR UPDATE";
throws Exception {
String Sql = null;
try {
if (operation.equals("UPDATE")) {
if(FlagColumnType.equalsIgnoreCase("LONGVARCHAR") || FlagColumnType.equalsIgnoreCase("CHAR")
|| FlagColumnType.equalsIgnoreCase("VARCHAR")){
Sql = "update " + souTable + " set " + flagName + " = " +
"'"+markcolumnValue+"'"+ " where " + souTable + "." + pkName;
}else{
Sql = "update " + souTable + " set " + flagName + " = " +
markcolumnValue + " where " + souTable + "." + pkName;
}
} else if (operation.equals("DELETE")) {
Sql = "delete from " + souTable + " where " + souTable + "." +
pkName;
} else if (operation.equals("INSERT")) {
Sql = "insert into " + tarTable + " select * from " + souTable +
" where " + souTable + "." + pkName;
} else if (operation.equals("SELECT")) {
Sql = "select * from " + "\"" + souTable + "\"";
}
} catch (final Exception e) {
mLogger.log(Level.SEVERE,mMessages.getString("Derby_Create_Query"),e);
throw new Exception(Db2DataAccess.mMessages.getString("Derby_Create_Query"), e);
}
return Sql;
}
//@Override
public String generateSelectQuery(final String selectSql, final String TableName)
throws Exception {
String Sql = null;
if( (selectSql == null)
|| selectSql.trim().equals("") ) {
Sql = "select * from " + TableName;
return Sql;
} else {
return selectSql;
}
} }
} }
//public class Db2DataAccess implements DatabaseModel{
// private String mtabName = null;
// private String mtrigName = null;
// private TableColumn[] mcolumns = null;
// private String mSchemaName = null;
// private String mMarkColumnName = null;
// private String mstageFlag = null;
// private static final Messages mMessages = Messages.getMessages(Db2DataAccess.class);
// private static Logger mLogger = Messages.getLogger(Db2DataAccess.class);
/**
* @param souTable
* @param schemaName
* @param flagName
*/
// public void init(Table souTable,String schemaName,String flagName,String stageFlag){
// mMarkColumnName = flagName;
// mstageFlag = stageFlag;
// setTableName(souTable.getName());
// setTriggerName(souTable.getName());
// mcolumns = souTable.getColumns();
// this.mSchemaName = schemaName;
// }
/**
* @throws Exception
*/
// public String createTableQuery() throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("create table ");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("\"" + this.mcolumns[i].getName() + "\"");
// sb.append(" ");
// sb.append(this.mcolumns[i].getSqlType());
// if ((this.mcolumns[i].getNumericPrecision() != 0)
// && ((this.mcolumns[i].getSqlType())
// .equalsIgnoreCase("VARCHAR"))) {
// sb.append("(");
// sb.append(this.mcolumns[i].getNumericPrecision());
// sb.append(")");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsPrimaryKey()) {
// sb.append("primary key");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsNullable()) {
// sb.append("not null");
// }
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
/**
* @param source
* @throws Exception
*/
// public String createTriggerQuery(String source) throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("CREATE TRIGGER ");
// sb.append(" ");
// sb.append(getTriggerName());
// sb.append(" ");
// sb.append("AFTER INSERT ON");
// sb.append(" ");
// sb.append(source);
// sb.append(" ");
// sb.append("REFERENCING NEW AS UPDATEDROW FOR EACH ROW MODE DB2SQL");
// sb.append(" ");
// sb.append("INSERT INTO");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("VALUES");
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("UPDATEDROW.");
// sb.append("\"");
// sb.append(this.mcolumns[i].getName());
// sb.append("\"");
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
//
// public String getTableName(){
// return (getSchemaName()+"."+this.mtabName);
// }
//
// public String getTriggerName(){
// return (getSchemaName()+"."+this.mtrigName);
// }
//
// public String getSchemaName(){
// return "\""+this.mSchemaName+"\"";
// }
//
// public void setTableName(String tabSource){
// mLogger.log(Level.INFO, "Flag Name" + mMarkColumnName);
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtabName = "\""+tabSource+"_jdbc_StaggingTable"+"\"";
// else
// this.mtabName = "\""+tabSource+"\"";
// }
//
// public void setTriggerName(String trigName){
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtrigName = "\""+trigName+"_jdbc_staggingTrigger"+"\"";
// else
// this.mtabName = "\""+trigName+"\"";
// }
/**
* @param souTable
* @param flagName
* @param pkName
* @param operation
* @throws Exception
*/
// public String createQualifiedQuery(String souTable, String flagName,
// String pkName, String operation) throws Exception {
// String Sql = null;
//
// try {
// if (operation.equals("UPDATE")) {
// Sql = "update " + souTable + " set " + flagName + " = 0 where"
// + souTable + "." + pkName;
// } else if (operation.equals("DELETE")) {
// Sql = "delete from " + souTable + " where " + souTable + "."
// + pkName ;
// } else if (operation.equals("INSERT")) {
// Sql = "insert into " + "\"" + souTable + "\"" + "." + "\""
// + flagName + "_jdbc_StaggingTable" + "\""
// + " select * from " + pkName;
// }
// } catch (Exception e) {
// throw new Exception( mMessages.getString("Derby_Create_Query"), e);
// }
// return Sql;
// }
//}

View File

@ -44,229 +44,16 @@ public class DerbyDataAccess implements DatabaseModel {
private static final Logger mLogger = Messages.getLogger(DerbyDataAccess.class); private static final Logger mLogger = Messages.getLogger(DerbyDataAccess.class);
private DerbyDataAccess(){ private DerbyDataAccess(){
} }
private static final DerbyDataAccess instance = new DerbyDataAccess(); private static final DerbyDataAccess instance = new DerbyDataAccess();
public static final DerbyDataAccess getInstance(){ public static final DerbyDataAccess getInstance(){
return instance; return instance;
}
//@Override
public String createQualifiedQuery(final String souTable, final String tarTable,
final String flagName, final String markcolumnValue, final String pkName, final String operation,
final String FlagColumnType)
throws Exception {
String Sql = null;
try {
if (operation.equals("UPDATE")) {
if(FlagColumnType.equalsIgnoreCase("LONGVARCHAR") || FlagColumnType.equalsIgnoreCase("CHAR")
|| FlagColumnType.equalsIgnoreCase("VARCHAR")){
/* Sql = "update " + souTable + " set " + flagName + " = " +
"'"+markcolumnValue+"'"+ " where" + souTable + "." + pkName;*/
Sql = "update " + souTable + " set " + flagName + " = " +
"'"+markcolumnValue+"'"+ " where " + pkName;
}else{
/*Sql = "update " + souTable + " set " + flagName + " = " +
markcolumnValue + " where" + souTable + "." + pkName;*/
Sql = "update " + souTable + " set " + flagName + " = " +
markcolumnValue + " where " + pkName;
}
} else if (operation.equals("DELETE")) {
/*Sql = "delete from " + souTable + " where " + souTable + "." +
pkName;*/
Sql = "delete from " + souTable + " where " + pkName;
} else if (operation.equals("INSERT")) {
/*Sql = "insert into " + tarTable + " select * from " + souTable +
" where " + souTable + "." + pkName;*/
Sql = "insert into " + tarTable + " select * from " + souTable +
" where " + pkName;
} else if (operation.equals("SELECT")) {
Sql = "select * from "+ souTable;
}
} catch (final Exception e) {
mLogger.log(Level.SEVERE,mMessages.getString("Derby_Create_Query"),e);
throw new Exception(DerbyDataAccess.mMessages.getString("Derby_Create_Query"), e);
}
return Sql;
} }
//@Override //@Override
public String generateSelectQuery(final String selectSql, final String TableName) public String generateSelectQuery(final String tableName, final int rowCount) {
throws Exception { return "SELECT * FROM " + tableName + " WHERE $WHERE" +
String Sql = null; (rowCount > 0 ? " FETCH FIRST "+rowCount+" ROWS ONLY" : "") + " FOR UPDATE";
if( (selectSql == null)
|| selectSql.trim().equals("") ) {
Sql = "select * from " + TableName;
return Sql;
} else {
return selectSql;
}
} }
} }
//public class DerbyDataAccess implements DatabaseModel{
// private String mtabName = null;
// private String mtrigName = null;
// private TableColumn[] mcolumns = null;
// private String mSchemaName = null;
// private String mMarkColumnName = null;
// private String mstageFlag = null;
// private static final Messages mMessages = Messages.getMessages(DerbyDataAccess.class);
// private static Logger mLogger = Messages.getLogger(DerbyDataAccess.class);
/**
* @param souTable
* @param schemaName
* @param flagName
*/
// public void init(Table souTable,String schemaName,String flagName,String stageFlag){
// mMarkColumnName = flagName;
// mstageFlag = stageFlag;
// setTableName(souTable.getName());
// setTriggerName(souTable.getName());
// mcolumns = souTable.getColumns();
// this.mSchemaName = schemaName;
// }
/**
* @throws Exception
*/
// public String createTableQuery() throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("create table ");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("\"" + this.mcolumns[i].getName() + "\"");
// sb.append(" ");
// sb.append(this.mcolumns[i].getSqlType());
// if ((this.mcolumns[i].getNumericPrecision() != 0)
// && ((this.mcolumns[i].getSqlType())
// .equalsIgnoreCase("VARCHAR"))) {
// sb.append("(");
// sb.append(this.mcolumns[i].getNumericPrecision());
// sb.append(")");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsPrimaryKey()) {
// sb.append("primary key");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsNullable()) {
// sb.append("not null");
// }
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
/**
* @param source
* @throws Exception
*/
// public String createTriggerQuery(String source) throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("CREATE TRIGGER ");
// sb.append(" ");
// sb.append(getTriggerName());
// sb.append(" ");
// sb.append("AFTER INSERT ON");
// sb.append(" ");
// sb.append(source);
// sb.append(" ");
// sb.append("REFERENCING NEW AS UPDATEDROW FOR EACH ROW MODE DB2SQL");
// sb.append(" ");
// sb.append("INSERT INTO");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("VALUES");
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("UPDATEDROW.");
// sb.append("\"");
// sb.append(this.mcolumns[i].getName());
// sb.append("\"");
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
//
// public String getTableName(){
// return (getSchemaName()+"."+this.mtabName);
// }
//
// public String getTriggerName(){
// return (getSchemaName()+"."+this.mtrigName);
// }
//
// public String getSchemaName(){
// return "\""+this.mSchemaName+"\"";
// }
//
// public void setTableName(String tabSource){
// mLogger.log(Level.INFO, "Flag Name" + mMarkColumnName);
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtabName = "\""+tabSource+"_jdbc_StaggingTable"+"\"";
// else
// this.mtabName = "\""+tabSource+"\"";
// }
//
// public void setTriggerName(String trigName){
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtrigName = "\""+trigName+"_jdbc_staggingTrigger"+"\"";
// else
// this.mtabName = "\""+trigName+"\"";
// }
/**
* @param souTable
* @param flagName
* @param pkName
* @param operation
* @throws Exception
*/
// public String createQualifiedQuery(String souTable, String flagName,
// String pkName, String operation) throws Exception {
// String Sql = null;
//
// try {
// if (operation.equals("UPDATE")) {
// Sql = "update " + souTable + " set " + flagName + " = 0 where"
// + souTable + "." + pkName;
// } else if (operation.equals("DELETE")) {
// Sql = "delete from " + souTable + " where " + souTable + "."
// + pkName ;
// } else if (operation.equals("INSERT")) {
// Sql = "insert into " + "\"" + souTable + "\"" + "." + "\""
// + flagName + "_jdbc_StaggingTable" + "\""
// + " select * from " + pkName;
// }
// } catch (Exception e) {
// throw new Exception( mMessages.getString("Derby_Create_Query"), e);
// }
// return Sql;
// }
//}

View File

@ -0,0 +1,59 @@
/*
* BEGIN_HEADER - DO NOT EDIT
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* https://open-jbi-components.dev.java.net/public/CDDLv1.0.html.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* HEADER in each file and include the License file at
* https://open-jbi-components.dev.java.net/public/CDDLv1.0.html.
* If applicable add the following below this CDDL HEADER,
* with the fields enclosed by brackets "[]" replaced with
* your own identifying information: Portions Copyright
* [year] [name of copyright owner]
*/
/*
* @(#)MysqlDataAccess.java
*
* Copyright 2015 Vitaliy Filippov
*
* END_HEADER - DO NOT EDIT
*/
package org.glassfish.openesb.databasebc.model.runtime;
import com.sun.jbi.internationalization.Messages;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author Vitaliy Filippov
*
*/
public class MysqlDataAccess implements DatabaseModel {
private static final Messages mMessages = Messages.getMessages(MysqlDataAccess.class);
private static final Logger mLogger = Messages.getLogger(MysqlDataAccess.class);
private static final MysqlDataAccess instance = new MysqlDataAccess();
private MysqlDataAccess(){
}
public static final MysqlDataAccess getInstance(){
return instance;
}
//@Override
public String generateSelectQuery(final String tableName, final int rowCount) {
return "SELECT * FROM " + tableName + " WHERE $WHERE" +
(rowCount > 0 ? " LIMIT "+rowCount : "") + " FOR UPDATE";
}
}

View File

@ -34,236 +34,25 @@ import java.util.logging.Logger;
import com.sun.jbi.internationalization.Messages; import com.sun.jbi.internationalization.Messages;
import java.util.logging.Level; import java.util.logging.Level;
/** /**
* @author Venkat P * @author Venkat P
* *
*/ */
public class OracleDataAccess implements DatabaseModel { public class OracleDataAccess implements DatabaseModel {
private static final Messages mMessages = Messages.getMessages(DerbyDataAccess.class); private static final Messages mMessages = Messages.getMessages(OracleDataAccess.class);
private static final Logger mLogger = Messages.getLogger(DerbyDataAccess.class); private static final Logger mLogger = Messages.getLogger(OracleDataAccess.class);
private OracleDataAccess(){ private OracleDataAccess(){
} }
private static final OracleDataAccess instance = new OracleDataAccess(); private static final OracleDataAccess instance = new OracleDataAccess();
public static final OracleDataAccess getInstance(){ public static final OracleDataAccess getInstance(){
return instance; return instance;
}
//@Override
public String createQualifiedQuery(final String souTable, final String tarTable,
final String flagName, final String markcolumnValue, final String pkName, final String operation,
final String FlagColumnType)
throws Exception {
String Sql = null;
try {
if (operation.equals("UPDATE")) {
if(FlagColumnType.equalsIgnoreCase("LONGVARCHAR") || FlagColumnType.equalsIgnoreCase("CHAR")
|| FlagColumnType.equalsIgnoreCase("VARCHAR")){
/*Sql = "update " + souTable + " set " + flagName + " = " +
"'"+markcolumnValue+"'"+ " where" + souTable + "." + pkName;*/
Sql = "update " + souTable + " set " + flagName + " = " +
"'"+markcolumnValue+"'"+ " where " + pkName;
}else{
/*Sql = "update " + souTable + " set " + flagName + " = " +
markcolumnValue + " where" + souTable + "." + pkName;*/
Sql = "update " + souTable + " set " + flagName + " = " +
markcolumnValue + " where " + pkName;
}
} else if (operation.equals("DELETE")) {
/*Sql = "delete from " + souTable + " where " + souTable + "." +
pkName;*/
Sql = "delete from " + souTable + " where " + pkName;
} else if (operation.equals("INSERT")) {
/* Sql = "insert into " + tarTable + " select * from " + souTable +
" where " + souTable + "." + pkName;*/
Sql = "insert into " + tarTable + " select * from " + souTable +
" where " + pkName;
} else if (operation.equals("SELECT")) {
Sql = "select * from " + souTable;
}
} catch (final Exception e) {
mLogger.log(Level.SEVERE,mMessages.getString("Derby_Create_Query"),e);
throw new Exception(OracleDataAccess.mMessages.getString("Derby_Create_Query"), e);
}
return Sql;
} }
//@Override //@Override
public String generateSelectQuery(final String selectSql, final String TableName) public String generateSelectQuery(final String tableName, final int rowCount) {
throws Exception { return "SELECT * FROM " + tableName + " WHERE $WHERE" +
String Sql = null; (rowCount > 0 ? " AND rownum<="+rowCount : "") + " FOR UPDATE";
if( (selectSql == null)
|| selectSql.trim().equals("") ) {
Sql = "select * from " + TableName;
return Sql;
} else {
return selectSql;
}
} }
} }
//public class OracleDataAccess implements DatabaseModel{
// private String mtabName = null;
// private String mtrigName = null;
// private TableColumn[] mcolumns = null;
// private String mSchemaName = null;
// private String mMarkColumnName = null;
// private String mstageFlag = null;
// private static final Messages mMessages = Messages.getMessages(OracleDataAccess.class);
// private static Logger mLogger = Messages.getLogger(OracleDataAccess.class);
/**
* @param souTable
* @param schemaName
* @param flagName
*/
// public void init(Table souTable,String schemaName,String flagName,String stageFlag){
// mMarkColumnName = flagName;
// mstageFlag = stageFlag;
// setTableName(souTable.getName());
// setTriggerName(souTable.getName());
// mcolumns = souTable.getColumns();
// this.mSchemaName = schemaName;
// }
/**
* @throws Exception
*/
// public String createTableQuery() throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("create table ");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("\"");
// sb.append(this.mcolumns[i].getName());
// sb.append("\"");
// sb.append(" ");
// sb.append(this.mcolumns[i].getSqlType());
// if ((this.mcolumns[i].getNumericPrecision() != 0)
// && ((this.mcolumns[i].getSqlType())
// .equalsIgnoreCase("VARCHAR"))) {
// sb.append("(");
// sb.append(this.mcolumns[i].getNumericPrecision());
// sb.append(")");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsPrimaryKey()) {
// sb.append("primary key");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsNullable()) {
// sb.append("not null");
// }
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("ORCL_Create_SQL") + sb.toString());
// return sb.toString();
// }
/**
* @param source
*/
// public String createTriggerQuery(String source) throws Exception{
// StringBuffer sb = new StringBuffer();
// sb.append("CREATE TRIGGER ");
// sb.append(" ");
// sb.append(getTriggerName());
// sb.append(" ");
// sb.append("AFTER INSERT ON");
// sb.append(" ");
// sb.append(source);
// sb.append(" ");
// sb.append("REFERENCING NEW AS UPDATEDROW FOR EACH ROW BEGIN");
// sb.append(" ");
// sb.append("INSERT INTO");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("VALUES");
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append(":UPDATEDROW.");
// sb.append("\"");
// sb.append(this.mcolumns[i].getName());
// sb.append("\"");
// if((i == (this.mcolumns.length-1))){
// sb.append(")");
// sb.append(";");
// }
// else
// sb.append(",");
// }
// sb.append("END;");
// mLogger.log(Level.INFO, mMessages.getString("ORCL_Create_SQL") + sb.toString());
// return sb.toString();
// }
//
// public String getTableName(){
// return (getSchemaName()+"."+this.mtabName);
// }
//
// public String getTriggerName(){
// return (getSchemaName()+"."+this.mtrigName);
// }
//
//
// public void setTableName(String tabSource){
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtabName = "\""+tabSource+"_StagTab"+"\"";
// else
// this.mtabName = "\""+tabSource+"\"";
// }
//
// public void setTriggerName(String trigName){
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtrigName = "\""+trigName+"_Trig"+"\"";
// else
// this.mtabName = "\""+trigName+"\"";
// }
//
// public String getSchemaName(){
// return "\""+this.mSchemaName+"\"";
// }
// /**
// * @param souTable
// * @param flagName
// * @param pkName
// * @param operation
// */
// public String createQualifiedQuery(String souTable, String flagName,
// String pkName, String operation) throws Exception {
// String Sql = null;
//
// try {
// if (operation.equals("UPDATE")) {
// Sql = "update " + souTable + " set " + flagName + " = 0 where"
// + "\"" + this.mtabName + "\"" + "." + pkName;
// } else if (operation.equals("DELETE")) {
// Sql = "delete from " + souTable + " where " + "\""
// + this.mtabName + "\"" + "." + pkName;
// } else if (operation.equals("INSERT")) {
// Sql = "insert into " + "\"" + souTable + "\"" + "." + "\""
// + flagName + "_StagTab" + "\"" + " select * from "
// + pkName;
// }
// } catch (Exception e) {
// throw new Exception(mMessages.getString("ORCL_Create_Query"), e);
// }
// return Sql;
// }
//}

View File

@ -44,221 +44,18 @@ public class SqlServerDataAccess implements DatabaseModel {
private static final Messages mMessages = Messages.getMessages(SqlServerDataAccess.class); private static final Messages mMessages = Messages.getMessages(SqlServerDataAccess.class);
private static final Logger mLogger = Messages.getLogger(SqlServerDataAccess.class); private static final Logger mLogger = Messages.getLogger(SqlServerDataAccess.class);
private SqlServerDataAccess(){ private SqlServerDataAccess(){
} }
private static final SqlServerDataAccess instance = new SqlServerDataAccess(); private static final SqlServerDataAccess instance = new SqlServerDataAccess();
public static final SqlServerDataAccess getInstance(){ public static final SqlServerDataAccess getInstance(){
return instance; return instance;
} }
//@Override //@Override
public String createQualifiedQuery(final String souTable, final String tarTable, // MSSQL does not support FOR UPDATE, Sybase only supports it beginning with 15.7
final String flagName, final String markcolumnValue, final String pkName, final String operation, public String generateSelectQuery(final String tableName, final int rowCount) {
final String FlagColumnType) return "SELECT"+(rowCount > 0 ? " TOP "+rowCount : "") + "* FROM " + tableName +
throws Exception { " WHERE $WHERE";
String Sql = null;
try {
if (operation.equals("UPDATE")) {
if(FlagColumnType.equalsIgnoreCase("LONGVARCHAR") || FlagColumnType.equalsIgnoreCase("CHAR")
|| FlagColumnType.equalsIgnoreCase("VARCHAR")){
Sql = "update " + souTable + " set " + flagName + " = " +
"'"+markcolumnValue+"'"+ " where " + souTable + "." + pkName;
}else{
Sql = "update " + souTable + " set " + flagName + " = " +
markcolumnValue + " where " + souTable + "." + pkName;
}
} else if (operation.equals("DELETE")) {
Sql = "delete from " + souTable + " where " + souTable + "." +
pkName;
} else if (operation.equals("INSERT")) {
Sql = "insert into " + tarTable + " select * from " + souTable +
" where " + souTable + "." + pkName;
} else if (operation.equals("SELECT")) {
Sql = "select * from " + "\"" + souTable + "\"";
}
} catch (final Exception e) {
mLogger.log(Level.SEVERE,mMessages.getString("Derby_Create_Query"),e);
throw new Exception(SqlServerDataAccess.mMessages.getString("Derby_Create_Query"), e);
}
return Sql;
}
//@Override
public String generateSelectQuery(final String selectSql, final String TableName)
throws Exception {
String Sql = null;
if( (selectSql == null)
|| selectSql.trim().equals("") ) {
Sql = "select * from " + TableName;
return Sql;
} else {
return selectSql;
}
} }
} }
//public class SqlServerDataAccess implements DatabaseModel{
// private String mtabName = null;
// private String mtrigName = null;
// private TableColumn[] mcolumns = null;
// private String mSchemaName = null;
// private String mMarkColumnName = null;
// private String mstageFlag = null;
// private static final Messages mMessages = Messages.getMessages(SqlServerDataAccess.class);
// private static Logger mLogger = Messages.getLogger(SqlServerDataAccess.class);
/**
* @param souTable
* @param schemaName
* @param flagName
*/
// public void init(Table souTable,String schemaName,String flagName,String stageFlag){
// mMarkColumnName = flagName;
// mstageFlag = stageFlag;
// setTableName(souTable.getName());
// setTriggerName(souTable.getName());
// mcolumns = souTable.getColumns();
// this.mSchemaName = schemaName;
// }
/**
* @throws Exception
*/
// public String createTableQuery() throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("create table ");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("\"" + this.mcolumns[i].getName() + "\"");
// sb.append(" ");
// sb.append(this.mcolumns[i].getSqlType());
// if ((this.mcolumns[i].getNumericPrecision() != 0)
// && ((this.mcolumns[i].getSqlType())
// .equalsIgnoreCase("VARCHAR"))) {
// sb.append("(");
// sb.append(this.mcolumns[i].getNumericPrecision());
// sb.append(")");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsPrimaryKey()) {
// sb.append("primary key");
// }
// sb.append(" ");
// if (this.mcolumns[i].getIsNullable()) {
// sb.append("not null");
// }
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
/**
* @param source
* @throws Exception
*/
// public String createTriggerQuery(String source) throws Exception {
// StringBuffer sb = new StringBuffer();
// sb.append("CREATE TRIGGER ");
// sb.append(" ");
// sb.append(getTriggerName());
// sb.append(" ");
// sb.append("AFTER INSERT ON");
// sb.append(" ");
// sb.append(source);
// sb.append(" ");
// sb.append("REFERENCING NEW AS UPDATEDROW FOR EACH ROW MODE DB2SQL");
// sb.append(" ");
// sb.append("INSERT INTO");
// sb.append(" ");
// sb.append(getTableName());
// sb.append(" ");
// sb.append("VALUES");
// sb.append(" ");
// sb.append("(");
// for (int i = 0; i < this.mcolumns.length; i++) {
// sb.append("UPDATEDROW.");
// sb.append("\"");
// sb.append(this.mcolumns[i].getName());
// sb.append("\"");
// if ((i == (this.mcolumns.length - 1)))
// sb.append(")");
// else
// sb.append(",");
// }
// mLogger.log(Level.INFO, mMessages.getString("Derby_Create_SQL") + sb.toString());
// return sb.toString();
// }
//
// public String getTableName(){
// return (getSchemaName()+"."+this.mtabName);
// }
//
// public String getTriggerName(){
// return (getSchemaName()+"."+this.mtrigName);
// }
//
// public String getSchemaName(){
// return "\""+this.mSchemaName+"\"";
// }
//
// public void setTableName(String tabSource){
// mLogger.log(Level.INFO, "Flag Name" + mMarkColumnName);
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtabName = "\""+tabSource+"_jdbc_StaggingTable"+"\"";
// else
// this.mtabName = "\""+tabSource+"\"";
// }
//
// public void setTriggerName(String trigName){
// if(mMarkColumnName != null && mMarkColumnName != "" && mstageFlag.equalsIgnoreCase("Yes"))
// this.mtrigName = "\""+trigName+"_jdbc_staggingTrigger"+"\"";
// else
// this.mtabName = "\""+trigName+"\"";
// }
/**
* @param souTable
* @param flagName
* @param pkName
* @param operation
* @throws Exception
*/
// public String createQualifiedQuery(String souTable, String flagName,
// String pkName, String operation) throws Exception {
// String Sql = null;
//
// try {
// if (operation.equals("UPDATE")) {
// Sql = "update " + souTable + " set " + flagName + " = 0 where"
// + souTable + "." + pkName;
// } else if (operation.equals("DELETE")) {
// Sql = "delete from " + souTable + " where " + souTable + "."
// + pkName ;
// } else if (operation.equals("INSERT")) {
// Sql = "insert into " + "\"" + souTable + "\"" + "." + "\""
// + flagName + "_jdbc_StaggingTable" + "\""
// + " select * from " + pkName;
// }
// } catch (Exception e) {
// throw new Exception( mMessages.getString("Derby_Create_Query"), e);
// }
// return Sql;
// }
//}