2013-02-01 12 views
0

我正在構建一個應用程序,其中包括用戶將數據輸入數據庫的功能。 如果用戶輸入一些文本,例如他們嘗試輸入日期,我希望能夠驗證他們輸入的字符串可以在沒有問題的SQL查詢中執行。如何驗證給定的字符串將作爲有效的sql類型

我在java中編碼,所以我想知道是否有任何這樣做的小型庫,或者如果我應該使用不同的reg-exes來進行驗證。

我不想依賴數據庫來進行驗證,因爲(a)它可能會很慢,如果它很遠,和(b)我可能想實現其他一些自定義驗證規則(或讓用戶做到這一點),並希望把我所有的驗證都放在一個盒子裏。

謝謝

+0

正則表達式驗證? –

+0

http://springinpractice.com/2008/07/17/annotation-based-validation-with-the-spring-bean-validation-framework/ – smk

+0

您可以使用異常處理來測試SQL字符串是否運行嗎? – souldzin

回答

0

通常,您不應該依賴數據庫的日期定義。相反,您應該聲明一個有效的應用程序格式(例如MM/DD/YY)並使用正則表達式,庫或自己的代碼來驗證用戶輸入,然後執行從指定格式到數據庫格式的轉換(例如, MM/DD/YY - > YY/MM/DD)。

如果您使用的是ORM,它將根據基礎數據庫爲特定類型(如Java的數據類)執行此轉換。否則,你必須自己做,但最好是從數據庫特定轉換中分離輸入驗證。

+0

足夠接近我的答案,並且對我們正在使用的ORM給出了很好的建議。謝謝。 –

相關問題