zoukankan      html  css  js  c++  java
  • 数据字典的设计--1.首页功能实现

      在项目开发中常常会看见一些下拉框选项,比如性别、人员学历等等。这些都是通过数据字典表来维护的,即在数据库创建一个数据字典表,将数据分类和详细信息保存在一张表中,实现无限极树形节点,实现基于global的查询。

     数据字典的作用:

    1. 贯穿系统的所有数据项,开发过程中,动态的维护系统数据项。如下图,左侧数据字典编辑页面维动态维护右侧各下拉框选项:     
    2. 保证数据的录入安全,业务表使用数据字典的时候,存放的是数据项的编号,而不是数据项的值:         
    3. 方便系统的统计

    数据库的设计:

    #数据字典
    CREATE TABLE Elec_SystemDDL(
    	SeqID INT NOT NULL,          #主键ID(自增长)
    	Keyword VARCHAR(20)   NULL,  #数据类型
    	DdlCode INT  NULL,           #数据项的code
    	DdlName VARCHAR(50)  NULL    #数据项的value
    ) 
    

    创建相应JavaBean和xml映射文件:

      1.创建Elec_SystemDDL.java文件

    @SuppressWarnings("serial")
    public class ElecSytemDDL implements Serializable{
    
        private Integer seqID;
        private String keyword;
        private Integer ddlCode;
        private String ddlName;
        
        public Integer getSeqID() {
            return seqID;
        }
        public void setSeqID(Integer seqID) {
            this.seqID = seqID;
        }
        public String getKeyword() {
            return keyword;
        }
        public void setKeyword(String keyword) {
            this.keyword = keyword;
        }
        public Integer getDdlCode() {
            return ddlCode;
        }
        public void setDdlCode(Integer ddlCode) {
            this.ddlCode = ddlCode;
        }
        public String getDdlName() {
            return ddlName;
        }
        public void setDdlName(String ddlName) {
            this.ddlName = ddlName;
        }
        
    }
    

      2.创建对应的hbm.xml文件 ElecSystemDDL.hbm.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="cn.elec.domain">
    	<class name="ElecSystemDDL" table="Elec_SystemDDL">
    		<id name="seqID" type="integer" column="seqID">
    			<generator class="increment"></generator>
    		</id>
    		<property name="keyword" type="string" column="keyword"></property>
    		<property name="ddlCode" type="integer" column="ddlCode"></property>
    		<property name="ddlName" type="string" column="ddlName"></property>
    	</class>
    </hibernate-mapping>
    

      3.在hibernate.cfg.xml文件中添加:

    <mapping resource="ElecSystemDDL.hbm.xml文件路径名"/>
    

    创建DAO接口及其实现类:

      1.创建DAO接口: IElecSystemDDLDao.java

    public interface IElecSystemDDLDao extends ICommonDao<ElecSystemDDL> {
    	public static final String SERVICE_NAME="cn.elec.dao.imp.ElecSystemDDLImpl";
    
    }
    

      2.创建实现类:ElecSystemDDLDaoImpl.java

    /**
     * @Repository
     * 相当于在spring中定义:<bean id="elecTextDaoImpl" class="com. **.ElecTextDaoImpl">
     */
    @Repository(IElecSystemDDLDao.SERVICE_NAME)
    public class ElecSystemDDLDaoImpl extends CommonDaoImpl<ElecSystemDDL> implements IElecSystemDDLDao{
    
    }
    

    创建Service接口及实现类:

      1.创建Service接口:IElecSystemDDLService.java

    public interface IElecSystemDDLService {
    
        public static final String SERVICE_NAME="com.elec.service.impl.ElecSystemDDLServiceImpl";
    }
    

      2.创建实现类:ElecSystemDDLServiceImpl.java

    //事务控制:spring的声明事务处理,在service层添加@Transactional
    @Service(IElecSystemDDLService.SERVICE_NAME)
    @Transactional(readOnly=true)
    public class ElecSystemDDLServiceImpl implements IElecSystemDDLService {
    
        /*数据字典Dao*/
        @Resource(name=IElecSystemDDLDao.SERVICE_NAME)
        IElecSystemDDLDao elecSystemDDLDao;
    
    
    }
    

    创建Action类:ElecSystemDDLAction.java

    public class ElecSystemDDLAction extends BaseAction<ElecSystemDDL>{
    	ElecSystemDDL elecSystemDDL=this.getModel();
    	
    	
    	//注入数据字典service
    	@Resource(name=IElecSystemDDLService.SERVICE_NAME)
    	IElecSystemDDLService elecSystemDDLService;
    	
    	/**  
    	* @Name: home
    	* @Description: 跳转到数据字典页面
    	*  @Parameters: 无
    	* @Return: String:跳转到system/dictionaryIndex.jsp
    	*/
    	public String home(){
    	  return "home";
    	}
    }
    

      其中BaseAction是对泛型实例化方法进行封装的类。

    配置struts.xml:

    <action name="elecSystemDDLAction_*" class="elecSystemDDLAction" method="{1}">
           <result name="home">/WEB-INF/page/system/dictionaryIndex.jsp</result>
    </action>

    修改script/menuDate.js中的url:

    {
                mid:'aq',
                pid:'am',
                name:'数据字典维护',
                icon:'../images/MenuIcon/shujuzidianguanli.gif',
                target:'mainFrame',
                /*url:'../system/dictionaryIndex.jsp',*/
                url:'../system/elecSystemDDLAction_home.do',
                isParent:false
    }
    

    启动Tomcat服务器,页面展示:

  • 相关阅读:
    UUID是否会重复、UUID的生成原理
    自己动手实现一个UUID
    分布式系统唯一ID生成方案
    docker命令中的启动停止命令的使用
    执行git push出现"Everything up-to-date"
    Github提交错误:Invalid username or password. fatal: Authentication failed for
    Allure安装
    git clone 时候出现Please make sure you have the correct access rights and the repository exists.问题解决
    使用fiddler,har2case 将api参数转成yaml格式
    Fiddler怎么可以抓取https的请求包
  • 原文地址:https://www.cnblogs.com/zhstudy/p/7099230.html
Copyright © 2011-2022 走看看