随笔 - 38  文章 - 0  评论 - 0  阅读 - 21035

数据字典的设计--1.首页功能实现

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

 数据字典的作用:

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

 

数据库的设计:

 

1
2
3
4
5
6
7
#数据字典
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文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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文件中添加:

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

 

创建DAO接口及其实现类:

  1.创建DAO接口: IElecSystemDDLDao.java

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

  2.创建实现类:ElecSystemDDLDaoImpl.java

1
2
3
4
5
6
7
8
/**
 * @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

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

  2.创建实现类:ElecSystemDDLServiceImpl.java

1
2
3
4
5
6
7
8
9
10
11
//事务控制: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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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:

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

 

修改script/menuDate.js中的url:

1
2
3
4
5
6
7
8
9
10
{
            mid:'aq',
            pid:'am',
            name:'数据字典维护',
            icon:'../images/MenuIcon/shujuzidianguanli.gif',
            target:'mainFrame',
            /*url:'../system/dictionaryIndex.jsp',*/
            url:'../system/elecSystemDDLAction_home.do',
            isParent:false
}

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

posted on   一只笨笨鸟  阅读(1499)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示