蒋振飞的博客 - SSH整合CRM(第3天)数据字典   
正在加载蒋振飞的博客...
V3.0
蒋振飞的博客

SSH整合CRM(第3天)数据字典

发布时间: 2019年04月16日 发布人: 蒋振飞 热度: 102 ℃ 评论数: 0

一、准备工作

1.BaseDict.java

建立BaseDict类与数据库的映射

public class BaseDict {

    private String dict_id;
    private String dict_type_code;
    private String dict_type_name;
    private String dict_item_name;
    private String dict_item_code;
    private Integer dict_sort;
    private String dict_enable;
    private String dict_memo;
}

2.BaseDict.hbm.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="com.jzfblog.crm.domain.BaseDict" table="base_dict">
                
        <id name="dict_id" column="dict_id">
            <generator class="uuid" />
        </id>

        <property name="dict_type_code" column="dict_type_code" />
        <property name="dict_type_name" column="dict_type_name" />
        <property name="dict_item_name" column="dict_item_name" />
        <property name="dict_item_code" column="dict_item_code" />
        <property name="dict_sort" column="dict_sort" />
        <property name="dict_enable" column="dict_enable" />
        <property name="dict_memo" column="dict_memo" />

        <!-- 字典和客户是一对多 -->
    </class>

</hibernate-mapping>

3.Web层(表示层)

创建BaseDictAction.java文件,继承ActionSupport并加入BaseDict的模型驱动和baseDictService属性注入。

/**
 * 数据字典Action类
 * @author 蒋振飞
 *
 */public class BaseDictAction extends ActionSupport implements ModelDriven<BaseDict> {
        // 数据字典:模型驱动
        private BaseDict baseDict = new BaseDict();
        public BaseDict getModel() {
                return baseDict;
        }
        
        // 属性注入
        private BaseDictService baseDictService;
        public void setBaseDictService(BaseDictService baseDictService) {
                this.baseDictService = baseDictService;
        }
        
}

4.Service层(业务逻辑层)

创建好BaseDictService接口和BaseDictServiceImpl.java文件,加入baseDictDao属性注入。

public class BaseDictServiceImpl implements BaseDictService {
        // 属性注入
        private BaseDictDao baseDictDao;
        
        public void setBaseDictDao(BaseDictDao baseDictDao) {
                this.baseDictDao = baseDictDao;
        }
}

5.Dao层(数据访问层)

创建好BaseDictDao接口和BaseDictDaoImpl.java文件,继承HibernateDaoSupport。

6.applicationContext.xml

在applicationContext.xml文件中加入Action、Service、Dao的管理。

<bean id="baseDictAction" class="com.jzfblog.crm.web.action.BaseDictAction" scope="prototype">
        <property name="baseDictService" ref="baseDictService" /></bean><bean id="baseDictService" class="com.jzfblog.crm.service.impl.BaseDictServiceImpl">
        <property name="baseDictDao" ref="baseDictDao" /></bean><bean id="baseDictDao" class="com.jzfblog.crm.dao.impl.BaseDictDaoImpl">
        <property name="sessionFactory" ref="sessionFactory" />
</bean>

二、数据字典查询功能

1.select标签

供数据字典查询。

<select id="cust_level" name="baseDictLevel.dict_id">
    <option value="">--请选择--</option>
</select>
<select id="cust_source" name="baseDictSource.dict_id">
    <option value="">--请选择--</option>
</select>
<select id="cust_industry" name="baseDictIndustry.dict_id">
    <option value="">--请选择--</option>
</select>

2.确定查询地址

采用ajax加载方案。

$(function(){
    // 页面加载函数就会执行:
    // 页面加载,异步查询字典数据:
    // 加载客户来源
    $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"002"},function(data){
        // 遍历json的数据:
        $(data).each(function(i,n){
            $("#cust_source").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");
        });
    },"json");
        
    $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"006"},function(data){
        // 遍历json的数据:
        $(data).each(function(i,n){
            $("#cust_level").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");
        });
    },"json");
        
    $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"001"},function(data){
        // 遍历json的数据:
        $(data).each(function(i,n){
            $("#cust_industry").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>");
        });
    },"json");
});

3.struts.xml

添加baseDict_findByTypeCode.action的路径。

<!-- 配置字典查询的Action -->
<action name="baseDict_*" class="baseDictAction" method="{1}">
        
</action>

4.BaseDictAction.java

在创建好的BaseDictAction类中,添加findByTypeCode方法。

/**
 * 根据类型名称查询字典的方法:findByTypeCode
 * @throws IOException 
 */
public String findByTypeCode() throws IOException {
        
    List<BaseDict> list = baseDictService.findByTypeCode(baseDict.getDict_type_code());
    // 将list转成json格式
    /**
    * JSONArray:将数组和list集合转成json
    * JSONObject:将对象和Map转换成json
    * JSONConfig:转JSON的配置对象
    */
        
    // 因为list中有一部分的数据是不需要的,所以在这里还要使用jsonConfig
    JsonConfig jsonConfig = new JsonConfig();
    jsonConfig.setExcludes(new String[]{"dict_sort", "dict_enable", "dict_memo"});
    JSONArray jsonArray = JSONArray.fromObject(list, jsonConfig);
        
    System.out.println(jsonArray.toString());
        
    // 需要将json打印到页面
    ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
    ServletActionContext.getResponse().getWriter().println(jsonArray.toString());
        
    return NONE;
}

5.BaseDictServiceImpl.java

在BaseDictServiceImpl类中,添加findByTypeCode方法。

public List<BaseDict> findByTypeCode(String dict_type_code) {
                
    return baseDictDao.findByTypeCode(dict_type_code);
}

6.BaseDictDaoImpl.java

在BaseDictDaoImpl类中,添加findByTypeCode方法。

public List<BaseDict> findByTypeCode(String dict_type_code) {

    // 注意:这里的表名应与自己定义相同,不与数据库相同
    return (List<BaseDict>) this.getHibernateTemplate().find("from BaseDict where dict_type_code = ?", dict_type_code);
}

打赏 蒋振飞

取消

感谢您的支持,我会继续努力的!

扫码支持
一分也是爱     一块不嫌多

点击 支付宝 或 微信 打赏蒋振飞

打开支付宝扫一扫,即可进行扫码打赏哦

评论列表