您的位置:首页 > 其它

数据字典在web中的简单应用

2016-11-09 20:12 197 查看
数据字典是什么?

数据字典一般是给开发人员用的,列出了系统后台数据库的情况。数据库中包含的所有表及其每个字段的类型、对应的中文名称、含义等。一般用于省市县,类型,性别等不容易改变的数据。
 
用数据字典有什么好处?

一般对于省,市,县 ,性别,类型等数据,在用下拉菜框时,每用一个下拉框就需要在数据库中建一个表,而使用数据字典,只需要一张表,或者两张表即可。

 

数据字典在web项目中简单的应用

        1.建表(拿两张表的举例)

          1.1

           创建t_summany表,里面存放类型

 
      创建t_detail表

      创建主表t_user

 
 
2.建立web工程

       2.1 创建一个util

          package com.lty.utils;

 

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

import javax.annotation.PostConstruct;

import javax.annotation.Resource;

 

importorg.springframework.stereotype.Component;

 

import com.lty.dao.TestDao;

import com.lty.dto.Detail;

import com.lty.dto.Summany;

@Component

public class Util {

         //连接dao

         @Resource

         privateTestDao dao;

         //创建一个静态map

         staticMap<Integer, Object> map=new HashMap<Integer, Object>();

         @PostConstruct

         //往map中添加数据

         privatevoid initMap(){

           //查出t_summany中的数据

           List<Summany>sulist=dao.getSuList();

           //遍历得到集合

           for(Summany summany : sulist) {

                 Integersid=summany.getSid();

                 //通过sid查出t_detail中的数据

                 List<Detail>detaillist=dao.getdelist(summany.getSid());

                 //以sid当key detaillist当value放入map

                 map.put(sid,detaillist);

           }

           //得到t_detail中的数据

           List<Detail>delist=dao.getdeilList();

                 //遍历得到的集合

                 for(Detail detail : delist) {

                      //将数据放到map中did为key dname为value

                      map.put(detail.getDid(),detail.getDname());

                 }

         }

         //通过did得到dnam

         publicstatic String getDnameById(Integer did){

           return  (String) map.get(did);

         }

         //通过sid得到一个detail的集合

         publicstatic List<Detail> getlistBySummaryId(Integer sid){

           return(List) map.get(sid);

         }

}

2.2根据t_user建立实体类

package com.lty.dto;
 
import com.lty.utils.Util;
 
publicclass User {
    
     private Integer
uid;
     private String
uname;
     private Integer
did;
     private String
dname;
     public String getDname() {
      //调用util里的方法
      return Util.getDnameById(did);
     }
     publicvoid setDname(Stringdname) {
      this.dname = dname;
     }
     public Integer getUid() {
      returnuid;
     }
     publicvoid setUid(Integeruid) {
      this.uid = uid;
     }
     public String getUname() {
      returnuname;
     }
     publicvoid setUname(Stringuname) {
      this.uname = uname;
     }
     public Integer getDid() {
      returndid;
     }
     publicvoid setDid(Integerdid) {
      this.did = did;
     }
    
 
}
在实体类中创建dname这个字段,get方法调用util的方法  这样在前台就能直接得到dname

3.前台下拉框

         在前台给个路径,进入connter层中的一个方法。public List<Detail> type(){
      //通过sid得到list集合
      List<Detail>type=Util.getlistBySummaryId(Chang.INTERTYPE);
      return type;
     }
在这里我定义一个常量类
publicclass Chang {
     publicstaticfinal Integer
SEX=1001;
     publicstaticfinal Integer
INTERTYPE=1002;
}
这样下拉框就完事了。
4. 数据字典后台管理的应用
页面操作:新增,修改,删除(逻辑删除),设置明细
删除时只能逻辑删除
补充:物理删除和逻辑删除
1). 物理删除:delete
2). 逻辑删除:在表中增加一个字段:delete_flag(true代表删除,false代表未删除)
select * from t_user wheredelete_flag = false;
update t_user setdelete_flag = true where
 
 
页面2:设置明细页面
 
该页面显示对应summary的明细
 
操作:新增,修改,删除(逻辑删除),设置显示顺序。

 数据字典给静态map差不多,程序执行就加载,加载一次后,后面调用

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: