2014-09-03 83 views
1

現在我正在爲學習目的創建一個簡單的銀行項目,我需要爲一個簡單的操作進行大量的搜索,更新和插入操作。例如,如果我想從示例用戶標識創建交易,請在「創建交易」屏幕上輸入詳細信息並按下「提交」按鈕後,我的應用程序將執行以下操作。是否可以使用JDBC在servlet中執行SQL文件?

1)在登錄會話表中插入一行數值:IP地址,用戶ID和時間。

2)檢查特定用戶標識是否有權從用戶訪問表創建事務選項。

3)檢查被扣/記賬的賬戶是否屬於與創建用戶的歸屬分支代碼相同的分支代碼。

3)要檢查輸入庫存(如果有)即DD,檢查是否有效從庫存表中。

4)檢查被扣/記賬的賬戶是否凍結。

5)檢查被扣賬戶是否有足夠的可用餘額。

6)檢查帳戶狀態有效/無效或休眠。

7)檢查,如果適用創建服務稅即從S.Tax表另一個搜索,並插入到帳戶的交易表

最後,

8)插入一行,該帳戶的交易表,如果準則通過。

現在我不覺得在我的Servlet中編寫如此多的準備狀態代碼只是爲了創建事務。我的應用程序中也會有其他操作。所以我想知道是否有一種方法可以簡單地編寫這些SQL語句並將SQL文件傳遞給Servlet。或者,也許我們可以在PL/SQL中編寫函數並將函數傳遞給servelt。這些方式可能嗎?

請注意,我使用J2EE和Oracle數據庫。

回答

2

我有一個項目,這樣做一次,我做了一些幾年前,我居然達到了接近你在找什麼我創建了一個屬性文件格式爲:

trans.getTransactons=select * from whateverTable where onesqlquery 
trans.getTranId=select tran_id from whatevertable where anothersqlquery 

所以,當你寫你的類,你剛剛從文件加載屬性和查詢從屬性填充:例如:這會將物業FLE

public class QueriesLoader { 

    Properties prop; 

    public QueriesLoader() { 
    } 

    public Properties getProp() { 
     prop = new Properties(); 
     ClassLoader classLoader = getClass().getClassLoader(); 
     try { 
      InputStream url = classLoader.getResourceAsStream("path/to/your/propertiesFile/databasequeries.properties"); 
      prop.load(url); 
     } catch (IOException asd) { 
      System.out.println(asd.getMessage()); 
     } 
     return prop; 
    } 
} 

然後在你的數據庫訪問對象

public ArrayList getAllTransactions() { 
     ArrayList arr = new ArrayList(); 
     try { 
      String sql = que.getProp().getProperty("trans.getTransactons"); 
      PreparedStatement ps = DBConnection.getDbConnection().prepareStatement(sql); 
      ResultSet rs = ps.executeQuery(); 
      while (rs.next()) { 
       arr.add(rs.getString(1)); 
      } 
      DBConnection.closeConn(DBConnection.getDbConnection()); 

     } catch (IOException asd) { 
      log.debug(Level.FATAL, asd); 
     } catch (SQLException asd) { 
      log.debug(Level.FATAL, asd); 
     } 
     return arr; 
    } 

而且我最終沒有在我的類中編寫單個查詢。我希望這可以幫助你。

相關問題