2010-04-15 54 views
0

是否可以寫數據庫方法屬性文件中,像一些數據庫查詢,並且可以使用servlet這可能會降低代碼訪問?servlet和資源文件

+0

您可能將不得不提供比此更多的上下文。然而,一般來說,讓數據庫訪問---儘可能多的業務邏輯---在服務器端是一個不錯的主意,尤其是你越不信任用戶。至於「屬性文件」,我不知道你在說什麼。 – Steve 2010-04-15 07:33:57

+0

@Steve:http://java.sun.com/docs/books/tutorial/essential/environment/properties.html這就像Java的'.ini'文件。 – BalusC 2010-04-15 11:30:35

+0

@srikanth:你的問題很模糊。 「數據庫方法」是什麼?你不是指SQL語句嗎?或者你的意思是真正的Java代碼?你爲什麼想這麼做? – BalusC 2010-04-15 11:32:04

回答

0
  1. 的web應用可以訪問屬性文件。
  2. 一個化子性質的文件可能有這樣QUERY1 =選擇一些鍵值對從某處

您可以依次在Web應用程序執行sql查詢組合1和2,但我不知道它會降低代碼(你還是要打開數據庫連接,讀取RS,關閉連接等)

+0

謝謝大家......是否有可能在屬性文件中寫入方法? – srikanth 2010-04-15 07:40:05

0

當然,你可以把你的查詢在一個屬性文件,但如果你正在使用JDBC,代碼經常要看這些查詢。參數的數量和順序不能改變,結果也一樣,所以我沒有看到很多優點。

0

可以存儲在web應用程序可以訪問的文件查詢,然後用準備好的語句來執行它們。通過這樣做,您的查詢字符串在外部文件中,您在代碼中執行的所有操作都將填充參數,但您必須首先從所謂的「屬性文件」中讀取查詢字符串。

例子:

String query; // read the query from the "properties file" 

//Suppose you put "INSERT INTO BOOKS (AUTHOR, TITLE) VALUES (?, ?);" 

PreparedStatement ps = conn.prepareStatement(query); 
ps.setString(1, "param1"); 
ps.setString(2, "param2"); 

ps.executeUpdate(); 
2

我見過DB完成工作的各種硬編碼SQL的方式直接進入每一個訪問數據庫的方法,到SQL存儲在中央文件中的靜態字符串,它是存儲在屬性文件中,最後當然還有ORM,比如hibernate。我甚至看到SQL存儲在數據庫中!

我決不會建議儲存遠離需要它們的代碼的SQL(或ORM查詢)。簡單的原因是,我的經驗是,通過斷開連接,開發人員開始重用和錯誤使用查詢。隨着時間的推移,開發人員將跟蹤哪些查詢在哪裏使用,並開始添加新的查詢以避免破壞事件的風險。最終他們最終得到的是充滿查詢的文件,而不知道哪些文件甚至被使用。我見過的最糟糕的情況是開發人員將SQL集中起來,並將其製作成單獨的部分。幾乎不可能分辨出改變是否會破壞事情。

用於分隔查詢的初始參數通常是「維護」或「以防我們更改數據庫」等。但是在一天結束時,它將成爲比想要解決的更大的問題。

總之,我建議你保存儘可能靠近使用它們儘可能的代碼查詢。 Hibernate和類似的方法使得這個實用的解決方案變得很長。