我们上一篇文章讲了Dao层代码:

这一篇我们讲解Service层和Action层;

Service层:

分为接口和实现类,我们主要看实现类:GysemplServiceImpl

package yycg.business.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import yycg.business.dao.mapper.GysypmlMapperCustom;
import yycg.business.pojo.vo.GysypmlCustom;
import yycg.business.pojo.vo.GysypmlQueryVo;
import yycg.business.service.GysymplService; public class GysemplServiceImpl implements GysymplService{ @Autowired
GysypmlMapperCustom gysymplMapperCustom; @Override
public List<GysypmlCustom> findGysymplList(String usergysId,GysypmlQueryVo gysymplQueryVo)
throws Exception {
//为了防止bug.这里做一个非空校验,如果传进来不是空,那么就直接把传进来那个赋值给他,如果传进来就是空的
//那么就新建一个
gysymplQueryVo=gysymplQueryVo!=null?gysymplQueryVo:new GysypmlQueryVo();
/**
* 为什么这里要再得到一个?因为可能在页面上已经传进来一个gysymplCustom.
* 所以要判断传进来那个是不是空的。
*
*
*/
GysypmlCustom gysymplCustom=gysymplQueryVo.getGysymplCustom();
if(gysymplCustom==null)//如果是空的,那就new一个。反正我们的目的就是把usergysId的值设置进去。
{
gysymplCustom=new GysypmlCustom(); }
//设置数据范围权限
gysymplCustom.setId(usergysId); List<GysypmlCustom> listgyGysymplCustoms=gysymplMapperCustom.findGysymplList(gysymplQueryVo);
return listgyGysymplCustoms;
} @Override
public int findGysypmlCount(String usergysId,GysypmlQueryVo gysymplQueryVo) throws Exception { //为了防止bug.这里做一个非空校验,如果传进来不是空,那么就直接把传进来那个赋值给他,如果传进来就是空的
//那么就新建一个
gysymplQueryVo=gysymplQueryVo!=null?gysymplQueryVo:new GysypmlQueryVo();
/**
* 为什么这里要再得到一个?因为可能在页面上已经传进来一个gysymplCustom.
* 所以要判断传进来那个是不是空的。
*
*
*/
GysypmlCustom gysymplCustom=gysymplQueryVo.getGysymplCustom();
if(gysymplCustom==null)//如果是空的,那就new一个。反正我们的目的就是把usergysId的值设置进去。
{
gysymplCustom=new GysypmlCustom(); } //设置数据范围权限
gysymplCustom.setId(usergysId);
int count=gysymplMapperCustom.findGysypmlCount(gysymplQueryVo);
return count;
} }

再看Action层:

package yycg.business.action;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import yycg.base.pojo.vo.ActiveUser;
import yycg.base.pojo.vo.PageQuery;
import yycg.base.process.context.Config;
import yycg.base.process.result.DataGridResultInfo;
import yycg.business.pojo.vo.GysypmlCustom;
import yycg.business.pojo.vo.GysypmlQueryVo;
import yycg.business.service.GysymplService;
@Controller
@RequestMapping("/ypml")
public class GysymplAction {
@Autowired
GysymplService gysymplService;
//去往查询页面
@RequestMapping("/querygysypml")
public String querygysypml( Model model) throws Exception
{
return "/business/ypml/querygysypml";
} //查询结果集
@RequestMapping("/querygysympl_request")
public @ResponseBody DataGridResultInfo querygysympl_request(HttpSession session,GysypmlQueryVo gysypmlQueryVo,int page,int rows) throws Exception
{
//当前用户信息去 Session中去拿。
ActiveUser activeUser=(ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY); /**
* 刚开始的时候想不通,为什么传的是用户所属的单位id,潜意识里想不是应该传的是用户的id吗,
* 后来想想不是啊,怎么可能是用户的id,因为是供应商这么一个大的慨念在提供货物,是以供应商为单位的,
* 所以应该是供应商啊,有很多个供应商在供应药品,所以是供应商的id.
*
*
*/
//用户所属的单位
String usergysid=activeUser.getSysid();//单位id
//列的总数
int total=gysymplService.findGysypmlCount(usergysid, gysypmlQueryVo);
//列表
PageQuery pageQuery=new PageQuery();
pageQuery.setPageParams(total, rows, page);
//设置分页参数
gysypmlQueryVo.setPageQuery(pageQuery);
//分页查询列表
List<GysypmlCustom> list=gysymplService.findGysymplList(usergysid, gysypmlQueryVo);
DataGridResultInfo dataGridResultInfo=new DataGridResultInfo();
dataGridResultInfo.setTotal(total);
dataGridResultInfo.setRows(list); return dataGridResultInfo; } }

最后调试:

调试的时候我遇到两个问题:

主要归结于两点:

1:GysypmlMapperCustom.xml所在的包路径和名字要与Mapper接口的下的名字一样:

Mapper接口:

要一模一样。不然直接报错:

调试结果:

调试ok。

032医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------Service层和Action层和调试的更多相关文章

  1. 033医疗项目-模块三:药品供应商目录模块——供货商药品目录t添加查询功能----------Dao层和Service层和Action层和调试

    什么叫做供货商药品目录t添加查询功能?就是说我们前面的博客里面不是说供货商登录后看到了自己供应的药品了么如下: 现在供货商想要往里面添加别的药品,那么这个药品的来源就是卫生局提供的那个Ypxx表(药品 ...

  2. 035医疗项目-模块三:药品供应商目录模块——供货商药品目录(批量)添加药品的功能---------Service

    这篇文章我们重点介绍Service层.因为Dao层就是用Gysypml逆向生成的Mapper就可以了.所以这里重点讲解Service层. 业务逻辑如下: 1:我们从前端页面传入有两个值:1:userg ...

  3. 030医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------Dao层:基本的查询语句的编写

    我们安装显示的要求: 我们能看到显示的目录里面有:供货企业的名字(这个数据来自于供货商的表[usergys]),流水号,通用名,剂型(这些都来自药品信息表),供货的状态(这个呢在gysypml_con ...

  4. 036医疗项目-模块三:药品供应商目录模块——供货商药品目录(批量)添加药品的功能---------Action层

    这篇文章我们来讲Action层: 我们先讲开发步骤: 1:我们要根据Service层里面要传的参数,在Action层传入对应的参数. Service层是:public void insertGysym ...

  5. 027医疗项目-模块二:药品目录的导入导出-导入功能的Action的编写

    前一篇文章我们写了Service层,这篇文章我们写一下Action层. 实现的功能: 1:我们先下载模板:然后按照模板里面的规则,插入数据.比如存在d盘. 2:然后浏览找到那个文件,上传上去. 然后把 ...

  6. 023医疗项目-模块二:药品目录的导入导出-从数据库中查出数据用XSSF导出excel并存放在虚拟目录最后下载(包括调试)

    我们要实现的效果:     进入到这个页面后,输入要查询的条件,查询出药品表的数据,然后按下导出按钮 ,就会在服务器的一个目录下生成一个药品表的excel表格.  点击"导出"之后 ...

  7. 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

    我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...

  8. 005医疗项目-模块一:用户的查找:1.用户表查询的sql语句

    这是医疗项目的第一个模块:做一个用户的查询,可以根据用户的账号,用户的名称,单位的名称,用户的类型去查询.要求效果如下:

  9. SSH项目搭建(三)——Maven多模块搭建项目

    多模块开发,大致的思想就是把一个项目按某种方式分成多个模块,再把模块们连接成一个整体,我们在开发的时候,可以很清晰的操作每一个模块,可以大大提高开发的效率. Java web项目,最常见的就是按代码的 ...

随机推荐

  1. join()方法

    1.现在有T1.T2.T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? package com.mianshi.easy; class JoinDemo implements ...

  2. C语言中的循环结构与选择结构

    1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...

  3. iOS 杂笔-22(万年一遇~一张图片对代理的理解)

    iOS 杂笔-22(万年一遇~一张图片对代理的理解) 建议:本博客需要对代理有一定了解方可阅读(反正我也管不到) 图片 在图片之外设置协议(没有这东西这篇博客也就是夭折了) 下面我对图片中出现的形形色 ...

  4. unity安卓和IOS读写目录

    StreamingAssets文件夹下的只读不可写路径: 安卓读:filePath = Application.streamingAssetsPath + "/文件名.格式名"; ...

  5. Android中将xml布局文件转化为View树的过程分析(下)-- LayoutInflater源码分析

    在Android开发中为了inflate一个布局文件,大体有2种方式,如下所示: // 1. get a instance of LayoutInflater, then do whatever yo ...

  6. 分享 | Git常用的一些命令

    最近,各个项目团队已经全面从svn转向Git 近期将会分享一些Git的常用操作及使用经验: 先了解下工作中一些需要用到的命令: --------------------------- Git基本常用命 ...

  7. cacti监控mysql

    cacti监控mysql 2013-09-25 16:21:43 分类: LINUX 原文地址:cacti监控mysql 作者:baochenggood cacti监控mysql 1 下载cacti监 ...

  8. column 'id' in field list is ambiguous

    column 'id' in field list is ambiguous  这个错误,是因为你查询语句里面有id字段的时候,没有说明是哪个表的id字段,应该加上表名(或者别名)来区分.

  9. 创建一个三角形类,成员变量三边,方法求周长,创建类主类A来测试它

    package com.hanqi.test; public class sanjiaoxing { private double a; private double b; private doubl ...

  10. 数据库 SQL Server 到 MySQL 迁移方法总结

    最近接手一起老项目数据库 SQL Server 到 MySQL 的迁移.因此迁移前进行了一些调查和总结.下面是一些 SQL Server 到 MySQL 的迁移方法. 1. 使用 SQLyog 迁移 ...