数据字典的设计--1.首页功能实现
在项目开发中常常会看见一些下拉框选项,比如性别、人员学历等等。这些都是通过数据字典表来维护的,即在数据库创建一个数据字典表,将数据分类和详细信息保存在一张表中,实现无限极树形节点,实现基于global的查询。
数据字典的作用:
- 贯穿系统的所有数据项,开发过程中,动态的维护系统数据项。如下图,左侧数据字典编辑页面维动态维护右侧各下拉框选项:
- 保证数据的录入安全,业务表使用数据字典的时候,存放的是数据项的编号,而不是数据项的值:
- 方便系统的统计
数据库的设计:
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服务器,页面展示:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理