java中數據字典的使用:


數據字典:數據庫中一個字段下存在多個值的情況(type:1:肉類  2:素菜類  3:服裝類):

分析:

1:這種情況下往往需要新建一張表來對應type下面的字段,通常以---表名--字段名---字段下面的值--字段明細--具體描述,等組成。

例如:數據庫中

2:數據字典的具體使用:

思路:相當於把上面dic這張表的所有數據查詢出來,放入到一個集合中(HashMap中------以鍵值對的形式存放),再通過key,value的形式把需要的值取出來

具體實現:

通過key取值:

model層:通過typeValue來實現type的具體明細:

代碼:

package com.floor.shop.map;

import com.floor.shop.dao.IDicDao;
import com.floor.shop.model.Dic;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.HashMap;
import java.util.List;

public class DicMap {
    @Autowired
    private static IDicDao dicDao;
   private static HashMap<String, String> hashMap = new HashMap<>();
//靜態方法在程序啟動的時候只加載一次,這樣為了讓查詢方法只去數據庫查詢一次
   static {
       //獲取應用上下文對象
       ApplicationContext ctx = new ClassPathXmlApplicationContext("mapper/spring-config.xml");
       //獲取dicDao實例
       dicDao = ctx.getBean(IDicDao.class);
         queryDic();
   }
   //從數據庫中取值放入到HashMap中
     public static void queryDic(){
           List<Dic> dics = dicDao.queryAll();
           StringBuilder sb = new StringBuilder();
           for(int i=0;i<dics.size();i++){
               Dic dic = dics.get(i);
               String tableName = dic.getTableName();
               String fieldName = dic.getFieldName();
               String fieldValue = dic.getFieldValue();
               String key = tableName+"_"+fieldName+"_"+fieldValue;
               String value = dic.getFieldDetail();
               System.out.println(key+"="+value);
               hashMap.put(key,value);
           }
       }

//    static{
//          hashMap.put("product_type_1","肉類");
//        hashMap.put("product_type_2","蔬菜類");
//        hashMap.put("product_type_3","服裝類");
//        hashMap.put("product_type_4","零食");
//        hashMap.put("product_type_5","其他");
//    }

    public static String getFieldDetail(String tableName,String fieldName,String fieldValue){
        StringBuilder sb = new StringBuilder();
        StringBuilder keySb = sb.append(tableName).append("_").append(fieldName).append("_").append(fieldValue);
        String key = keySb.toString();
        String value = hashMap.get(key);
        return value;
    }
}
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM