我们上一篇文章讲了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. xcode 7及以上版本网络请求不成功的原因

    在Xcode 7以前的版本使用的是http协议,从Xcode 7开始,默认使用的是https协议,这优化了加密性能. 要想在Xcode 7及以上版本能够进行网络请求,我们需要在info.plist文件 ...

  2. XML,DTD,XSD,XSL的区别

    XML=可扩展标记语言(eXtensible Markup Language). 可扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可用 方便的方式建立,虽然XML ...

  3. org.apache packages can't be resolved in Eclipse解决方案

    删除.m2仓库里面对应的jar包,重新Maven->update project

  4. spring hibernate摘记

    一.spring 1.ContextLoaderListener    它作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextLi ...

  5. Windows自动关机命令

    winxp中自带了自动关机功能,在开始→运行中使用SHUTDOWN命令 1. 延迟关机关机 shutdown -s -t 120 -s为关机:-t为时间,以秒为单位,120表示2分钟 表示两分钟后关机 ...

  6. windows下使用mysql双机热备功能

    一. 准备工作 1. 准备两台服务器(电脑),接入局域网中,使互相ping得通对方 2. 两台服务器都安装mysql-server-5.1,必须保证mysql的版本一致 3. 假设,服务器A:192. ...

  7. cocoapods降级版本

    1.卸载当前版本sudo gem uninstall cocoapods 2.下载旧版本sudo gem install cocoapods -v 0.39.0 PS: 如果之前装有多版本,执行1之后 ...

  8. android 实现ImageView按压效果和解决背景图片拉申问题

    建立一个.XML文件,名为:image_tab_bg.xml <?xml version="1.0" encoding="utf-8"?> < ...

  9. Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表

    Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files. ...

  10. unp TCP 客户端服务器回射程序中对SIGCHLD信号的处理

    第五章中,有一个例子模拟客户端并发的终止TCP连接,服务器捕捉并处理SIGCHLD信号并调用waitpid函数防止僵死进程的出现.信号处理函数中核心的一句是: , &statloc, WNOH ...