数据字典:

  • 字典表和客户表的关系
  • 配置字典表
  • 配置客户表
  • Spring管理映射文件

1 字典表和客户表的关系

2 配置字典表

3  配置客户表

4  Spring管理映射文件

异步查询客户:

页面加载的时候,callback函数将对应信息字典表id,通过callback回调函数传给Action,action调用业务层,业务层调用DAO从数据库里面将需要的数据,再由Action传给页面。

  • 前端页面
  • Action
  • Service
  • DAO

1 前端交互:

2 Action:

package com.mycrm.web.action;

import java.io.IOException;
import java.util.List; import org.apache.logging.log4j.core.config.json.JsonConfiguration;
import org.apache.struts2.ServletActionContext; import com.mycrm.domain.BaseDict;
import com.mycrm.service.BaseDictService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven; import net.sf.json.JSONArray;
import net.sf.json.JsonConfig; /*
* 字典的Action
*/
public class BaseDictAction extends ActionSupport implements ModelDriven<BaseDict> {
// 模型驱动
private BaseDict baseDict = new BaseDict(); @Override
public BaseDict getModel() {
return baseDict;
} //注入Service
private BaseDictService baseDictService; public void setBaseDictService(BaseDictService baseDictService) {
this.baseDictService = baseDictService;
} //根据类型名称查询字典的方法,findByTypeCode
public String findByTypeCode() throws IOException{
System.out.println("BasedictAction中的findByTypeCode方法执行了");
List<BaseDict> list = baseDictService.findByTypeCode(baseDict.getDict_type_code());
//将list转成JSON,引入包 jsonlib/fastjson
/**
* JSONConfig:转JSON的配置对象
* JSONArray: 将数组和list集合转成JSON
* JSONObject: 将对象和MAP集合转成JSON
*/
//jsonConfig.setExcludes去掉不必要的字段
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{"dict_sort","dict_enable","dict_memo"});
JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig);
//将JSON打印到页面:
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().println(jsonArray.toString());
return NONE;
} }

3 Service:

package com.mycrm.service.impl;

import java.util.List;

import com.mycrm.dao.BaseDictDao;
import com.mycrm.domain.BaseDict;
import com.mycrm.service.BaseDictService; /**
*
* 字典业务层的实现类
*/
public class BaseDictServiceImpl implements BaseDictService {
// 注入Dao
private BaseDictDao baseDictDao; public void setBaseDictDao(BaseDictDao baseDictDao) {
this.baseDictDao = baseDictDao;
} @Override
public List<BaseDict> findByTypeCode(String dict_type_code) {
return baseDictDao.findByTypeCode(dict_type_code) ;
} }

4 DAO:

package com.mycrm.dao.impl;

import java.util.List;

import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import com.mycrm.dao.BaseDictDao;
import com.mycrm.domain.BaseDict; public class BaseDictDaoImpl extends HibernateDaoSupport implements BaseDictDao { @Override
public List<BaseDict> findByTypeCode(String dict_type_code) {
return (List<BaseDict>) this.getHibernateTemplate().find("from BaseDict where dict_type_code=?", dict_type_code);
} }

二 配置数据字典&异步查询客户的更多相关文章

  1. mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)

    mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...

  2. 《Entity Framework 6 Recipes》中文翻译系列 (41) ------ 第七章 使用对象服务之标识关系中使用依赖实体与异步查询保存

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-7  标识关系中使用依赖实体 问题 你想在标识关系中插入,更新和删除一个依赖实体 ...

  3. Spring Security教程(二):自定义数据库查询

    Spring Security教程(二):自定义数据库查询   Spring Security自带的默认数据库存储用户和权限的数据,但是Spring Security默认提供的表结构太过简单了,其实就 ...

  4. CRL快速开发框架系列教程二(基于Lambda表达式查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  5. TFS API:二、TFS 代码查询工作项

    TFS API:二.TFS  代码查询工作项 首先我们需要认识TFS的两大获取服务对象的类. 他们分别为TfsConfigurationServer和TfsTeamProjectCollection, ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (11) -----第三章 查询之异步查询

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第三章 查询 前一章,我们展示了常见数据库场景的建模方式,本章将向你展示如何查询实体 ...

  7. NHibernate系列文章二十三:NHibernate查询之Criteria查询(附程序下载)

    摘要 上一篇文章介绍了NHibernate HQL,他的缺点是不能够在编译时发现问题.如果数据库表结构有改动引起了实体关系映射的类有改动,要同时修改这些HQL字符串.这篇文章介绍NHibernate面 ...

  8. MSSQL数据库链接字符串Asynchronous Processing=true不是异步查询吗,怎么是缓存

    ;Asynchronous Processing=true  不是异步查询吗,怎么是缓存 <!--<add name="default" providerName=&q ...

  9. SQL总结(二)连表查询

    ---恢复内容开始--- SQL总结(二)连表查询 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要. 只有真正了解它们之间的区别,才能正确使用. 1.Union ...

随机推荐

  1. python开发环境搭建及编辑器选择与安装

    内容来源:https://www.cnblogs.com/sanzangTst/p/7278337.html https://www.cnblogs.com/sanzangTst/p/7282154. ...

  2. Update(Stage5):Kudu入门_项目介绍_ CDH搭建

    Kudu 导读 什么是 Kudu 操作 Kudu 如何设计 Kudu 的表 Table of Contents 1. 什么是 Kudu 1.1. Kudu 的应用场景 1.2. Kudu 和其它存储工 ...

  3. 【PAT甲级】1061 Dating (20 分)

    题意: 给出四组字符串,前两串中第一个位置相同且大小相等的大写字母(A~G)代表了周几,前两串中第二个位置相同且大小相等的大写字母或者数字(0~9,A~N)代表了几点,后两串中第一个位置相同且大小相等 ...

  4. ES 创建mapping

    mapping的写入与查看首先创建一个索引: curl -XPUT "http://erp2.es.kd1.pagoda.com.cn:80/erp_stock_index"{&q ...

  5. 「AHOI2014/JSOI2014」宅男计划

    「AHOI2014/JSOI2014」宅男计划 传送门 我们首先要发现一个性质:存货天数随买食物的次数的变化类似于单峰函数. 具体证明不会啊,好像是二分加三分来证明?但是没有找到明确的严格证明. 感性 ...

  6. 使用Servlet处理AJAX请求

    AJAX用于异步更新页面的局部内容. ajax常用的请求数据类型 text    纯文本字符串 json    json数据 使用ajax获取text示例 此种方式常用于前端向后台查询实体的一个属性( ...

  7. win8.1 virtualbox 安装centos7注意事项

    win8.1是64位的,一开始在virtualbox中选择版本时,怎么也选不到64位的,这时要改BIOS设置,把CPU虚拟化改为允许. virtualbox是32位的,没必要非得是64位(64位的也不 ...

  8. Re库的基本使用

    # Re库的主要功能函数 """ re.search() 在一个字符串中搜索匹配正则表达式的第一个位置, 返回match对象 re.match() 在一个字符串的开始位置 ...

  9. Ollydbg使用问题汇总

    1.可疑的断点 描述:看上去您想在一些命令的中间位置或数据中设置断点. 如果真是这样的话, 这些断点将不会执行并可能严重影响调试的程序. 您真的希望在此设置断点吗? 选择  否 的话还是会出现这个问题 ...

  10. Java基础 -1.4

    标识符与关键字 对于标识符的组成在Java之中的定义如下:由字母.数字._.$ 组成 其中不能使用Java的保留字(关键字) 其中 $ 一般都有特殊的含义 不建议出现在自己所编写的代码上 关键字 是系 ...