一、创建后台主体

1.1 编写后台页面

<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>医院药品管理系统</title><link rel="stylesheet" th:href="@{/static/layui/css/layui.css}" media="all"><link rel="stylesheet" th:href="@{/static/admin/style.css}" media="all">
</head>
<body class="layui-layout-body">
<!--顶部-->
<div class="layui-layout layui-layout-admin"><div class="layui-header"><div class="layui-logo"><b>医院药品管理系统</b></div><!-- 头部区域(可配合layui已有的水平导航) --><ul class="layui-nav layui-layout-left"><li class="layui-nav-item"><a href="">首页</a></li><li class="layui-nav-item"><a lay-href="/druginfo">商品管理</a></li><li class="layui-nav-item"><a href="">用户</a></li><li class="layui-nav-item"><a href="javascript:;">其它系统</a><dl class="layui-nav-child"><dd><a href="">邮件管理</a></dd><dd><a href="">消息管理</a></dd><dd><a href="">授权管理</a></dd></dl></li></ul><ul class="layui-nav layui-layout-right"><li class="layui-nav-item"><a href="javascript:;"><img src="http://t.cn/RCzsdCq" class="layui-nav-img">清风</a><dl class="layui-nav-child"><dd><a href="">基本资料</a></dd><dd><a href="">安全设置</a></dd></dl></li><li class="layui-nav-item"><a href="">注销</a></li></ul></div><!--左侧菜单--><div class="layui-side layui-bg-black"><!--可以滚动--><div class="layui-side-scroll"><!--lay-accordion="true" 菜单可以折叠--><ul class="layui-nav layui-nav-tree" lay-accordion="true"><li class="layui-nav-item"><a href="javascript:;" class="layui-icon layui-icon-home layui-nav-item"> 药品库存管理</a></li><li class="layui-nav-item"><a href="javascript:;" class="layui-icon layui-icon-set-fill layui-nav-item"> 药品销售管理</a></li><li class="layui-nav-item"><a href="javascript:;" class="layui-icon layui-icon-date layui-nav-item"> 药品明细查询</a><!--二级菜单--><dl class="layui-nav-child"><dd><a href="#" class="site-demo-active" lay-href="http://www.baidu.com/" data-id="1" data-title="药品信息">药品信息</a> </dd><dd><a href="#" class="site-demo-active" lay-href="/supplier" data-id="2" data-title="供应商信息">供应商信息</a> </dd></dl></li></ul></div></div><!--右侧主体部分--><div class="layui-body"><!--tab标签可以出现多个--><div class="layui-tab" lay-filter="demo" lay-allowclose="true"style="margin: 0;"><!--标签列表--><ul class="layui-tab-title"></ul><!--标签内容--><div class="layui-tab-content"></div></div></div><!--页面底部区域--><div class="layui-footer" align="center">医院药品管理系统 -- 底部固定区域</div>
</div>
<script th:src="@{/static/layui/layui.js}"></script>
<script></script>
</body>
</html>

1.2 编写注销跳转

UserController

    /*** 注销跳转到登录页面* @return toLogin.html*/@RequestMapping(value = "/logout")public String logout(){//获取sessionSubject subject = SecurityUtils.getSubject();//清除sessionsubject.logout();//重定向到登录页面return "redirect:/login";}

进行注销测试

1.3 设置二级菜单

点击左侧菜单右侧转向对应页面

<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>医院药品管理系统</title><link rel="stylesheet" th:href="@{/static/layui/css/layui.css}" media="all"><link rel="stylesheet" th:href="@{/static/admin/style.css}" media="all">
</head>
<body class="layui-layout-body">
<!--顶部-->
<div class="layui-layout layui-layout-admin"><div class="layui-header"><div class="layui-logo"><b>医院药品管理系统</b></div><ul class="layui-nav layui-layout-right"><li class="layui-nav-item " ><a href="/logout"> 退出系统</a> </li></ul></div><!--左侧菜单--><div class="layui-side layui-bg-black"><!--可以滚动--><div class="layui-side-scroll"><!--lay-accordion="true" 菜单可以折叠--><ul class="layui-nav layui-nav-tree" lay-accordion="true"><li class="layui-nav-item"><a href="javascript:;" class="layui-icon layui-icon-home layui-nav-item"> 药品库存管理</a></li><li class="layui-nav-item"><a href="javascript:;" class="layui-icon layui-icon-set-fill layui-nav-item"> 药品销售管理</a></li><li class="layui-nav-item"><a href="javascript:;" class="layui-icon layui-icon-date layui-nav-item"> 药品明细查询</a><!--二级菜单--><dl class="layui-nav-child"><dd><a href="#" class="site-demo-active" lay-href="http://www.baidu.com/" data-id="1" data-title="药品信息">药品信息</a> </dd><dd><a href="#" class="site-demo-active" lay-href="/supplier" data-id="2" data-title="供应商信息">供应商信息</a> </dd></dl></li></ul></div></div><!--右侧主体部分--><div class="layui-body"><!--tab标签可以出现多个--><div class="layui-tab" lay-filter="demo" lay-allowclose="true"style="margin: 0;"><!--标签列表--><ul class="layui-tab-title"></ul><!--标签内容--><div class="layui-tab-content"></div></div></div><!--页面底部区域--><div class="layui-footer" align="center">医院药品管理系统 -- 底部固定区域</div>
</div>
<script th:src="@{/static/layui/layui.js}"></script>
<script>layui.use(['element','layer','jquery'],function () {var element = layui.element;var $ = layui.$;//左侧菜单树叶点击事件$('.site-demo-active').on('click',function () {var dataid = $(this);//判断右侧是否有tabif($(".layui-tab-title li[lay-id]").length<=0){//没有tab,直接打开新的tabactive.tabAdd(dataid.attr('lay-href'),dataid.attr('data-id'),dataid.attr('data-title'));}else{//判断该tab项是否已经存在var isExist = false;$.each($(".layui-tab-title li[lay-id]"),function () {//如果点击左侧菜单栏传入的id在右侧tab项中的lay-id可以找到,说明该tab项已经打开if($(this).attr("lay-id") == dataid.attr("data-id")){isExist = true;}});if(isExist == false){//不存在当前id对应的tab,直接打开新的tabactive.tabAdd(dataid.attr('lay-href'),dataid.attr('data-id'),dataid.attr('data-title'));}}//不管是不是新增了tab,最后都要转到要打开的选项页面active.tabChange(dataid.attr("data-id"));});//配置active,绑定几项事件,后面可以用active调用这些事件var active = {//新增tab项//url是页面地址,id对应data-id,name对应标题tabAdd: function (url,id,name) {element.tabAdd('demo',{title:name,<!--显示区域-->content:'<iframe data-frameid="'+id+'" scrolling="auto" frameborder="0" src="'+url+'" style="width:100%;height:700px;"></iframe>',id:id});},//根据id切换到指定的tabtabChange: function (id) {element.tabChange('demo',id);},//关闭指定的tabtabDelete: function (id) {element.tabDelete('demo',id);}}});</script>
</body>
</html>

测试:

二、编写供应商管理

2.1编写供应商页面

<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>供应商信息管理</title><link rel="stylesheet" th:href="@{/static/layui/css/layui.css}" media="all"><link rel="stylesheet" th:href="@{/static/admin/style.css}" media="all"><!--定义列数据--><script type="text/html" id="indexTpl">{{d.LAY_TABLE_INDEX+1}}</script>
</head><body class="layui-layout-body"><!--页面自适应宽度--><div class="layui-fluid"><!--每一行高度间距--><div class="layui-row layui-col-space15"><!--每一列的宽度--><div class="layui-col-md12"><!--layui的卡片元素--><div class="layui-card"><!--标题--><div class="layui-card-header">供应商信息列表</div><!--主体内容--><div class="layui-card-body"><!--主体内容放入body,有就显示没有就隐藏--><table class="layui-hide" id="main-table" lay-filter="main-table"></table><script type="text/html" id="toolbarDemo"><span class="layui-inline" lay-event="add"><i class="layui-icon">&#xe654;</i> </span><!--点击事件的监听--><span class="layui-inline" style="width: 240px;"><input class="layui-input" name="param" id="param" placeholder="根据药品名称查询" autocomplete="off"></span><!--查询搜索框--><span class="layui-btn layui-btn-sm layui-bg-red" lay-event="querySearch"><!--查询按钮--><i class="layui-icon">&#xe615;</i>查询</span></script><script type="text/html" id="barDemo"><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></script></div></div></div></div></div><script th:src="@{/static/layui/layui.js}"></script><script>layui.use(['table','form'],function () {var $ = layui.$;var table = layui.table;<!--对后台做出查询-->table.render({elem: '#main-table',height: 650,//拼接访问地址url: '/supplier/supplierQueryPage',//请求参数method: 'POST',//是否分写page: true,//指定idid: 'table-load',toolbar: '#toolbarDemo',//有哪些列cols: [[{title: '序号',templet: '#indexTpl',width: 60,align:'center'},{field:'name',title:'供应商名称',algin:'center',width:350},{field:'content',title:'描述',algin:'center',width:600},{field:'createtime',title:'创建时间',algin:'center',width:250,templet:"<div>{{layui.util.toDateString(d.createtime,'yyyy-MM-dd HH:mm:ss')}}</div>"},{title:'操作',align:'center',toolbar:'#barDemo',fixed:'right'}]]});//监听头工具栏事件//监听当前事件table.on('toolbar(main-table)',function (obj) {switch (obj.event) {case 'add':layer.open({type: 2,title: '新增供应商信息',content: '/supplier/supplierPage',shade:[0.8,'#393d49'],area:['600px','400px'],btn:['确定','取消'],yes:function (index,layero) {var iframeWindow = window['layui-layer-iframe'+index];var submit = layero.find('iframe').contents().find("#LAY-front-submit");//监听提交iframeWindow.layui.form.on('submit(LAY-front-submit)',function (data) {var field = data.field;$.ajax({url: '/supplier/supplierAdd',data: field,async: false,cache: false,success: function (str) {if(str.code === 0){table.reload('table-load');}layer.msg(str.msg,{icon:str.icon,anim:str.anim});}});layer.close(index);     //关闭弹层});submit.trigger('click');},success:function (layero,index) {}});break;case 'querySearch':var param = $('#param').val();table.reload('table-load',{where: {param: param}});$('#param').val(param);break;}});//监听编辑、删除//监听当前表的对象table.on('tool(main-table)',function (obj) {var data = obj.data;//监听事件switch (obj.event) {//case 'edit':layer.open({type: 2,title: '编辑供应商信息',content: '/supplier/supplierQueryById?id=' +data.id,shade:[0.8,'#393d49'],area:['600px','400px'],btn:['确定','取消'],yes:function (index,layero) {var iframeWindow = window['layui-layer-iframe'+index];var submit = layero.find('iframe').contents().find("#LAY-front-submit");//监听提交iframeWindow.layui.form.on('submit(LAY-front-submit)',function (data) {var field = data.field;$.ajax({url: '/supplier/supplierEdit',data: field,async: false,cache: false,success: function (str) {if(str.code === 0){table.reload('table-load');}layer.msg(str.msg,{icon:str.icon,anim:str.anim});}});layer.close(index);     //关闭弹层});submit.trigger('click');},success:function (layero,index) {}});break;case 'del':layer.confirm('确认要删除吗?',function (index) {$.ajax({url: '/supplier/supplierDelById?id=' +data.id,data: null,async: false,cache: false,success: function (str) {table.reload('table-load');layer.msg(str.msg,{icon:str.icon,anim:str.anim});}});})break;}});});</script>
</body>
</html>

2.2 创建供应商实体类

Supplier

package com.dh.pojo;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;import java.io.Serializable;
import java.util.Date;/*** 供应商*/
@Data
@TableName(value = "supplier") //mybatis的声明,对应的表
public class Supplier implements Serializable {/*主键*/@TableField(value = "id") //对应的是id//设置主键,主键自增@TableId(value = "id",type = IdType.AUTO)private Integer id;/*用户名*/private String name;/*供应商描述*/private String content;/*创建时间*/private Date createtime;
}

2.3 创建mapper接口

供应商的增删改查mapper

package com.dh.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dh.pojo.Supplier;
import org.apache.ibatis.annotations.Mapper;/*** 供应商的增删改查mapper*/@Mapper
public interface SupplierMapper extends BaseMapper<Supplier> {
}

2.4 创建sevice业务层

package com.dh.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dh.pojo.Supplier;import java.util.List;/*** 供应商的service接口*/
public interface SupplierService extends IService<Supplier> {/*** 查询所有供应商信息* @return*/public List<Supplier> querySupplierList();/*** 分页查询供应商数据* @param pageNum 第几页* @param pageSize 每页多少条数据* @param param 查询参数-供应商名称* @return*/public IPage<Supplier> selectSupplierPage(int pageNum,int pageSize,String param);/*** 新增一条供应商信息* @param supplier* @return 返回一条数据*/public int addSupplier(Supplier supplier);/*** 修改一条供应商信息* @param supplier*/public int updateSupplier(Supplier supplier);/*** 根据主键id查询一个供应商信息* @param id 供应商*/public Supplier querySupplierById(Integer id);/*** 根据主键id删除一个供应商信息* @param id 供应商*/public int DeleteSupplierById(Integer id);}

Impl 实现类

package com.dh.service.Impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dh.mapper.SupplierMapper;
import com.dh.pojo.Supplier;
import com.dh.service.SupplierService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** 供应商SupplierService实现类*/
@Service
public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> implements SupplierService {@Autowiredprivate  SupplierMapper supplierMapper;/*** 查询所有供应商** @return*/@Overridepublic List<Supplier> querySupplierList() {return supplierMapper.selectList(null);}/*** 分页查询供应商数据** @param pageNum  第几页* @param pageSize 每页多少条数据* @param param    查询参数-供应商名称* @return*/@Overridepublic IPage<Supplier> selectSupplierPage(int pageNum, int pageSize, String param) {QueryWrapper<Supplier> queryWrapper = new QueryWrapper<>();if(StringUtils.isNotBlank(param)){//查询供应商名称queryWrapper.like("name",param);}//定义分页参数配置,pageNum传入第几页、pageSize页面大小Page<Supplier> page = new Page<>(pageNum,pageSize);//返回查询结果return supplierMapper.selectPage(page,queryWrapper);}/*** 新增一条供应商信息** @param supplier*/@Overridepublic int addSupplier(Supplier supplier) {return supplierMapper.insert(supplier);}/*** 修改一条供应商信息** @param supplier*/@Overridepublic int updateSupplier(Supplier supplier) {return supplierMapper.updateById(supplier);}/*** 根据主键id查询一个供应商对象** @param id* @return*/@Overridepublic Supplier querySupplierById(Integer id) {return supplierMapper.selectById(id);}/*** 根据主键id删除一个供应商对象** @param id* @return*/@Overridepublic int DeleteSupplierById(Integer id) {return supplierMapper.deleteById(id);}
}

2.5 编写controller控制层

package com.dh.controller;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dh.common.ResultMapUtil;
import com.dh.pojo.Supplier;
import com.dh.service.SupplierService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;/*** 供应商相关的控制层*/
@Controller
@RequestMapping(value = "/supplier") //设置公共的返回地址
public class SupplierController {@Autowiredprivate SupplierService supplierService;/*** 1.转向供应商页面*/@RequestMappingpublic String supplier(){return "/supplier";}/**** 2.分页查询供应商列表* @param param 查询参数 供应商名字* @param pageNum 当前页面是第几页* @param pageSize 每一页的大小* @return*/@RequestMapping(value = "/supplierQueryPage")@ResponseBodypublic Object supplierQueryPage(String param, @RequestParam(defaultValue = "1")int pageNum, @RequestParam(defaultValue = "10")int pageSize){try{//去service层查询参数配置IPage<Supplier> iPage = supplierService.selectSupplierPage(pageNum,pageSize,param);//5.封装到方法中return ResultMapUtil.getHashMapMysqlPage(iPage);} catch (Exception e){//返回错误的结果return ResultMapUtil.getHashMapException(e);}}
}

2.6 编写ResultMapUtil

package com.dh.common;import com.baomidou.mybatisplus.core.metadata.IPage;import java.util.HashMap;/*** 给前端返回的JSON格式数据*/
public class ResultMapUtil {/*** 登录返回结果*/public static HashMap<String,Object> getHashMapLogin(String msg,String code){HashMap<String,Object> resultMap = new HashMap<>();resultMap.put("msg",msg);resultMap.put("code",code);if ("1".equals(code)){resultMap.put("icon", 1);}else {resultMap.put("icon", 3);}resultMap.put("anim", 4);return resultMap;}/*** 3.分页查询结果* @param object* @return*/public static HashMap<String,Object> getHashMapMysqlPage(IPage<?> object){//IPage<?>支持所有泛型//定义返回值HashMap<String,Object> resultMap = new HashMap<>();//返回成功为 0resultMap.put("code",0);//默认没有内容resultMap.put("msg","");//获取数据,当前对象的数据resultMap.put("count",object.getTotal());//传入当前数据到 dataresultMap.put("data",object.getRecords());return resultMap;}/*** 4.异常数据统一处理* @param e 传入异常信息* @return*/public static HashMap<String,Object> getHashMapException(Exception e){HashMap<String,Object> resultMap = new HashMap<>();resultMap.put("code",0);//把异常信息返回给前端resultMap.put("msg",e.getMessage());return resultMap;}

2.7 运行测试效果

SQL中编写一条数据

运行测试:


2.8 增加功能

2.8.1 创建新增页面

supplierPage.html

<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>供应商信息</title><link rel="stylesheet" th:href="@{/static/layui/css/layui.css}" media="all"><link rel="stylesheet" th:href="@{/static/admin/style.css}" media="all">
</head>
<body><div class="layui-fluid"><div class="layui-card"><div class="layui-card-body"style="padding: 15px;"><form class="layui-form layui-form-pane" action=""><!--判断传入的参数--><input name="id" th:value="${obj?.id}" class="layui-input layui-hide"/><!--获取供应商名称--><div class="layui-form-item"><label class="layui-form-label">供应商名称</label><div class="layui-input-block"><input type="text" name="name" th:value="${obj?.name}" lay-verify="required" placeholder="请输入供应商名称" autocomplete="off" class="layui-input"></div></div><!--获取供应商描述--><div class="layui-form-item"><label class="layui-form-label">供应商描述</label><div class="layui-input-block"><textarea name="content" th:text="${obj?.content}" lay-verify="required" placeholder="请输入供应商描述" autocomplete="off" class="layui-textarea"></textarea></div></div><!--提交按钮,提交参数--><div class="layui-form-item layui-hide"><input type="button" lay-submit lay-filter="LAY-front-submit" id="LAY-front-submit" value="确认"></div></form></div></div></div><script th:src="@{/static/layui/layui.js}"></script><script>layui.use(['form'],function () {var $ = layui.$;});</script>
</body>
</html>

2.8.2 增加功能

SupplierController

   /*** 6.转向供应商新增页面*/@RequestMapping(value = "/supplierPage")public String supplierPage(){return "/supplierPage";}/*** 7.添加一个供应商* @return*/@RequestMapping(value = "/supplierAdd")@ResponseBodypublic Object supplierAdd(Supplier supplier){try{//获取当前时间supplier.setCreatetime(new Date());//执行保存int i = supplierService.addSupplier(supplier);return ResultMapUtil.getHashMapSave(i);} catch (Exception e){return ResultMapUtil.getHashMapException(e);}}

2.8.3 编写ResultMapUtil

 /*** 8.保存成功的统一返回格式* @param i* @return*/public static HashMap<String,Object> getHashMapSave(int i){HashMap<String,Object> resultMap = new HashMap<>();if(i == 0){resultMap.put("msg","保存失败");resultMap.put("code",1);resultMap.put("icon",5);resultMap.put("anim",6);}else {resultMap.put("msg","保存成功");resultMap.put("code",0);resultMap.put("icon",1);resultMap.put("anim",4);}return resultMap;}

运行测试:

2.9 修改功能

2.9.1 根据id删除

    /*** 转向供应商编辑页面* 根据id查询,required 必须存在*/@RequestMapping(value = "/supplierQueryById")public String supplierQueryById(@RequestParam(name = "id",required = true)Integer id, Model model){//根据Id 获取查询当前对象Supplier supplier = supplierService.querySupplierById(id);//把查询的数据,存入model中model.addAttribute("obj",supplier);return "/supplierPage";}/*** 修改一个供应商*/@RequestMapping(value = "/supplierEdit")@ResponseBodypublic Object supplierEdit(Supplier supplier){try{int i = supplierService.updateSupplier(supplier);return ResultMapUtil.getHashMapSave(i);} catch (Exception e){//失败就报异常return ResultMapUtil.getHashMapException(e);}}

2.9.2 测试:


2.10 删除功能

2.10.1 根据id删除

/*** 11.删除一个供应商*/@RequestMapping(value = "/supplierDelById")@ResponseBodypublic Object supplierDelById(Integer id){try{int i = supplierService.DeleteSupplierById(id);return ResultMapUtil.getHashMapDel(i);} catch (Exception e){return ResultMapUtil.getHashMapException(e);}}

2.10.2 编写ResultMapUtil

    /*** 12.删除成功的统一返回格式*/public static HashMap<String,Object> getHashMapDel(int i){HashMap<String,Object> resultMap = new HashMap<>();//等于0就保存成功if(i == 0){resultMap.put("msg","删除失败");resultMap.put("code",1);resultMap.put("icon",5);resultMap.put("anim",6);}else {resultMap.put("msg","删除成功");resultMap.put("code",0);resultMap.put("icon",1);resultMap.put("anim",4);}return resultMap;}

测试:


项目下载

git地址:

https://gitee.com/light_as_breeze/jt/tree/master/src/main

微信公众号:

微信公众号:淡若清风丶

医院药品管理系统开源项目-03 【后台主体 供应商管理】相关推荐

  1. 医院药品管理系统开源项目-04 【药品管理】

    一.创建药品数据 大致上和之前供货商一样,Ctrl+C复制粘贴修改 1.1 创建pojo实体类 package com.dh.pojo;import com.baomidou.mybatisplus. ...

  2. 医院药品管理系统开源项目-01 【环境配置】

    一.系统环境配置 系统开发平台:JDK1.8+Maven3.6.1 框架:Springboot+Layui 数据库和工具:MySql8.SQLyog.Navicat 开发工具: Intellij ID ...

  3. 医院药品管理系统开源项目-04 【药品销售管理】

    一.销售记录 1.1 创建pojo实体类 Saleinfo package com.dh.pojo;import com.baomidou.mybatisplus.annotation.IdType; ...

  4. 基于javaweb的医院药品管理系统(idea版本)

    一.项目简介 本项目采用idea工具开发,jsp+servlet技术编写,样式采用了layui和bootstrap前段框架,数据库采用的是mysql,navicat开发工具. 系统一共分为四个角色分别 ...

  5. 【计算机毕业设计】218医院药品管理系统

    一.系统截图(需要演示视频可以私聊) 目 录 目 录 摘  要 ABSTRACT 1 绪论 1.1 课题背景 1.2 研究现状 1.3 研究内容 2 系统开发环境 2.1 vue技术 2.2 JAVA ...

  6. JAVA计算机毕业设计医院药品管理系统Mybatis+源码+数据库+lw文档+系统+调试部署

    JAVA计算机毕业设计医院药品管理系统Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计医院药品管理系统Mybatis+源码+数据库+lw文档+系统+调试部署 本源码技术栈 ...

  7. 计算机毕业设计Java医院药品管理系统(系统+源码+mysql数据库+Lw文档)

    计算机毕业设计Java医院药品管理系统(系统+源码+mysql数据库+Lw文档) 计算机毕业设计Java医院药品管理系统(系统+源码+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  8. java毕业生设计医院药品管理系统演示录像2020计算机源码+系统+mysql+调试部署+lw

    java毕业生设计医院药品管理系统演示录像2020计算机源码+系统+mysql+调试部署+lw java毕业生设计医院药品管理系统演示录像2020计算机源码+系统+mysql+调试部署+lw 本源码技 ...

  9. javaweb JAVA JSP医院药品管理系统 JSP药品进销存系统 JSP医药进销存系统 JSP医药销售管理系统

    javaweb JAVA JSP医院药品管理系统 JSP药品进销存系统 JSP医药进销存系统 JSP医药销售管理系统 protected void doGet(HttpServletRequest r ...

最新文章

  1. Cloneable接口和循环冗余校验算法
  2. Python标准模块—Regular Expressions
  3. 送花(洛谷 2073)
  4. Android自己的自动化测试Monkeyrunner和用法示例
  5. 面试题25:合并两个排序的链表
  6. python 获取键盘输入、同时有超时的功能_python 获取键盘输入,同时有超时的功能示例...
  7. Java跟踪对象,使用OpenCV实时隔离和跟踪多个对象?
  8. WebService之Java原生态支持
  9. L1-057 PTA使我精神焕发 (5 分)-PAT 团体程序设计天梯赛 GPLT
  10. CIO圈子—CIO成长交流的平台
  11. 布客·ApacheCN 编程/后端/大数据/人工智能学习资源 2020.11
  12. IDEA去掉SQL语句的黄色警告
  13. 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限
  14. Libero逻辑分析仪的使用(基本篇)
  15. CYUSB3014设计方案|替代CYUSB3014芯片|方寸微T630可完全替代兼容CYPRESS CYUSB3014
  16. 【Unity3D】sRGB伽马(gamma)空间和sRGB Frame Buffer线性空间的简单介绍
  17. 怎么从网上办大流量卡呢?具体步骤小编都给你写好的!
  18. CODJ 1070 秋实大哥打游戏 并查集
  19. vue日历排班组件_vue之手把手教你写日历组件
  20. 什么是迭代器(Iterator)?

热门文章

  1. php php_sockets,PHP-SOCKETS读书笔记_php
  2. 使用Mac技巧:如何解决Mac大写锁定键失灵?
  3. JAVA计算机毕业设计仓库管理系统源码+数据库+系统+lw文档
  4. 10、SpringBoot之SpringAop的认识
  5. Mac VirtualBox安装centos8 ssh访问
  6. IQM的Unimon:一种新的量子比特,可促进量子计算机的实用化
  7. java操作hadf
  8. 计算机视觉 工具 代码合集
  9. re.IGNORECASE --以不区分大小写的方式对文本做查找和替换
  10. 使用ServletFileUpload实现上传