閱讀了很多帖子後,我打算使用下面的方法從數據庫中提取參考數據(代碼尚未測試)。Spring MVC - 在服務器啓動時從數據庫獲取參考數據
@Override
protected Map referenceData(HttpServletRequest request) throws Exception {
//Data referencing for country list box
Map referenceData = new HashMap();
referenceData.put("countryList", articleService.getCountryList());
//Data referencing for skills list box
Map<String,String> javaSkill = new LinkedHashMap<String,String>();
referenceData.put("skillsList", articleService.getSkillsList());
return referenceData;
}
參考的數據表如下
id key value type
-----------------------------------------
1 1 United States countries
2 2 India countries
3 3 United Kingdom countries
4 4 China countries
5 1 Java skills
6 2 Spring skills
7 3 Hibernate skills
8 4 SQL skills
我有兩個問題,
- 這是一個靜態引用數據(我不會改變它幾個月),所以我不想要爲每個請求創建數據庫,並且應該在服務器啓動時加載數據。這個怎麼做?
- 這是正確的方法還是我在認識錯誤方面是錯誤的?
感謝您的投入JB。具體是關於外鍵部分。儘管我明白了爲什麼要將國家和技能表分開,但我仍然有一個關於在服務器啓動時加載參考數據的問題。我確信這必須在很多加載靜態參考數據的應用程序中完成。我試圖找出在這個schenario中採用的最常用的方法(我在帖子後仍然使用它) – Sachin
常用的方法是使用二級緩存。然後等待第一個請求被執行並且懶惰地加載緩存,或者在啓動時執行假查詢和循環,以便立即填充緩存。我只是懶惰地做,只有在證明這會導致性能問題時才採取其他措施。 –
那麼,如果一個表需要超級模塊化並且具有外鍵關係,那麼它不再是一個'reference'數據,並且您應該使用適當的ORM來訪問它。 – Isaac