数据字典的设计--1.首页功能实现
Posted 一只笨笨鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据字典的设计--1.首页功能实现相关的知识,希望对你有一定的参考价值。
在项目开发中常常会看见一些下拉框选项,比如性别、人员学历等等。这些都是通过数据字典表来维护的,即在数据库创建一个数据字典表,将数据分类和详细信息保存在一张表中,实现无限极树形节点,实现基于global的查询。
数据字典的作用:
- 贯穿系统的所有数据项,开发过程中,动态的维护系统数据项。如下图,左侧数据字典编辑页面维动态维护右侧各下拉框选项:
- 保证数据的录入安全,业务表使用数据字典的时候,存放的是数据项的编号,而不是数据项的值:
- 方便系统的统计
数据库的设计:
#数据字典 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服务器,页面展示:
以上是关于数据字典的设计--1.首页功能实现的主要内容,如果未能解决你的问题,请参考以下文章