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服务器,页面展示:

  • 相关阅读:
    Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾
    Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾
    atitit.极光消息推送服务器端开发实现推送  jpush v3. 总结o7p
    atitit.极光消息推送服务器端开发实现推送  jpush v3. 总结o7p
    Atitit.文件搜索工具 attilax 总结
    Atitit.文件搜索工具 attilax 总结
    Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package
    Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package
    Atitit..状态机与词法分析  通用分词器 分词引擎的设计与实现 attilax总结
    Atitit..状态机与词法分析  通用分词器 分词引擎的设计与实现 attilax总结
  • 原文地址:https://www.cnblogs.com/zhstudy/p/7099230.html
Copyright © 2011-2022 走看看