Author: chintana Date: Sat Sep 19 10:03:13 2009 New Revision: 816884 URL: http://svn.apache.org/viewvc?rev=816884&view=rev Log: Implementing the new operation
Modified: incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/dal/CustomerDAO.java incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLCustomerDAO.java incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLCustomerDAO.java Modified: incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/dal/CustomerDAO.java URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/dal/CustomerDAO.java?rev=816884&r1=816883&r2=816884&view=diff ============================================================================== --- incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/dal/CustomerDAO.java (original) +++ incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/dal/CustomerDAO.java Sat Sep 19 10:03:13 2009 @@ -28,6 +28,9 @@ public interface CustomerDAO { + public String getProfileIdFromStsIdentifier(String Id, String Sts) + throws DAOException; + public CustomHoldingBean getHoldingForUpdate(int orderId) throws DAOException; Modified: incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLCustomerDAO.java URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLCustomerDAO.java?rev=816884&r1=816883&r2=816884&view=diff ============================================================================== --- incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLCustomerDAO.java (original) +++ incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mssql/MSSQLCustomerDAO.java Sat Sep 19 10:03:13 2009 @@ -55,11 +55,50 @@ private static final String SQL_INSERT_ACCOUNT = "INSERT INTO dbo.account (CREATIONDATE, OPENBALANCE, LOGOUTCOUNT, BALANCE, LASTLOGIN, LOGINCOUNT, PROFILE_USERID) VALUES (GetDate(), ?, ?, ?, ?, ?, ?); SELECT ID=@@IDENTITY"; private static final String SQL_UPDATE_ACCOUNT_PROFILE = "UPDATE dbo.accountprofile WITH (ROWLOCK) SET ADDRESS=?, PASSWORD=?, EMAIL=?, CREDITCARD=?, FULLNAME=? WHERE USERID=?"; private static final String SQL_SELECT_HOLDINGS = "SELECT HOLDING.HOLDINGID, HOLDING.QUANTITY, HOLDING.PURCHASEPRICE, HOLDING.PURCHASEDATE, HOLDING.QUOTE_SYMBOL,HOLDING.ACCOUNT_ACCOUNTID from dbo.holding WHERE HOLDING.ACCOUNT_ACCOUNTID = (SELECT ACCOUNTID FROM ACCOUNT WHERE PROFILE_USERID = ?) ORDER BY HOLDING.HOLDINGID DESC"; + private static final String SQL_SELECT_CUSTOMERPROFILE_BYSTSID = "Set NOCOUNT ON; SELECT ACCOUNTPROFILE.UserID FROM dbo.ACCOUNT, dbo.ACCOUNTPROFILE, dbo.STSACCOUNTLOOKUP WITH (NOLOCK) WHERE ACCOUNT.PROFILE_USERID = ACCOUNTPROFILE.USERID and ACCOUNT.ACCOUNTID = STSACCOUNTLOOKUP.UserID and STSACCOUNTLOOKUP.StsUniqueIdentifier = ? and STSACCOUNTLOOKUP.IssuingSts = ?"; public MSSQLCustomerDAO(Connection sqlConnection) throws DAOException { super(sqlConnection); } + public String getProfileIdFromStsIdentifier(String Id, String Sts) throws DAOException { + if (logger.isDebugEnabled()) { + logger.debug("MSSQLCustomerDAO.getProfileIdFromStsIdentifier(String, String)\nUnique identifier: " + Id + "\nSts: " + Sts); + } + + PreparedStatement selectProfileId = null; + String pid = null; // profile id + try { + selectProfileId = sqlConnection.prepareStatement(SQL_SELECT_CUSTOMERPROFILE_BYSTSID); + selectProfileId.setString(1, Id); + selectProfileId.setString(2, Sts); + ResultSet rs = selectProfileId.executeQuery(); + if (rs.next()) { + try { + pid = rs.getString(1); + return pid; + } finally { + try { + rs.close(); + } catch (SQLException e) { + logger.debug("", e); + } + } + } + } catch (SQLException e) { + throw new DAOException("Exception is thrown when selecting the profile id for unique id: " + Id + "and Sts: " + Sts, e); + } finally { + if (selectProfileId != null) { + try { + selectProfileId.close(); + } catch (SQLException e) { + logger.debug("", e); + } + } + } + return pid; + } + public CustomHoldingBean getHoldingForUpdate(int orderId) throws DAOException { if (logger.isDebugEnabled()) { logger.debug("MSSQLCustomerDAO.getHoldingForUpdate(int)\nOrder ID :" + orderId); Modified: incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLCustomerDAO.java URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLCustomerDAO.java?rev=816884&r1=816883&r2=816884&view=diff ============================================================================== --- incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLCustomerDAO.java (original) +++ incubator/stonehenge/trunk/stocktrader/wsas/common/src/org/apache/stonehenge/stocktrader/mysql/MySQLCustomerDAO.java Sat Sep 19 10:03:13 2009 @@ -54,11 +54,50 @@ private static final String SQL_INSERT_ACCOUNT = "INSERT INTO account (creationdate, openbalance, logoutcount, balance, lastlogin, logincount, profile_userid, accountid) VALUES (now(), ?, ?, ?, ?, ?, ?, null); SELECT LAST_INSERT_ID();"; private static final String SQL_UPDATE_ACCOUNT_PROFILE = "UPDATE accountprofile SET address = ?, password = ?, email = ?, creditcard = ?, fullname = ? WHERE userid = ?"; private static final String SQL_SELECT_HOLDINGS = "SELECT holdingid, quantity, purchaseprice, purchasedate, quote_symbol, account_accountid FROM holding WHERE account_accountid = (SELECT accountid FROM account WHERE profile_userid = ?) ORDER BY holdingid DESC"; + private static final String SQL_SELECT_CUSTOMERPROFILE_BYSTSID = "SELECT userid FROM account a, accountprofile p, stsaccountlookup s WHERE a.profile_userid = p.userid AND a.accountid = s.userid AND s.stsuniqueidentifier = ? AND s.issuingsts = ?"; public MySQLCustomerDAO(Connection sqlConnection) throws DAOException { super(sqlConnection); } + public String getProfileIdFromStsIdentifier(String Id, String Sts) throws DAOException { + if (logger.isDebugEnabled()) { + logger.debug("MSSQLCustomerDAO.getProfileIdFromStsIdentifier(String, String)\nUnique identifier: " + Id + "\nSts: " + Sts); + } + + PreparedStatement selectProfileId = null; + String pid = null; // profile id + try { + selectProfileId = sqlConnection.prepareStatement(SQL_SELECT_CUSTOMERPROFILE_BYSTSID); + selectProfileId.setString(1, Id); + selectProfileId.setString(2, Sts); + ResultSet rs = selectProfileId.executeQuery(); + if (rs.next()) { + try { + pid = rs.getString(1); + return pid; + } finally { + try { + rs.close(); + } catch (SQLException e) { + logger.debug("", e); + } + } + } + } catch (SQLException e) { + throw new DAOException("Exception is thrown when selecting the profile id for unique id: " + Id + "and Sts: " + Sts, e); + } finally { + if (selectProfileId != null) { + try { + selectProfileId.close(); + } catch (SQLException e) { + logger.debug("", e); + } + } + } + return pid; + } + public CustomHoldingBean getHoldingForUpdate(int orderId) throws DAOException { if (logger.isDebugEnabled()) { logger.debug("MySQLCustomerDAO.getHoldingForUpdate(int)\nOrder ID :" + orderId);