将整个查结果拆分成2个子查询,再合并起来
(3)SQL语句编写
这种带子查询的语句相对复杂,我们分步来实现
1)先实现当前商品库存统计,查询出每种商品的库存数量
这种结果只能查询存在库存的商品数量,而库存中不存在的商品侧不会显示出来。我们可以通过左外链接的方式进行查询。使用nvi方法把null转换0
2)实现销售订单中商品的统计,统计每种待发货的商品数量
3)通过商品编号将上面这2种查询组合起来
(4)视图创建
我们上边的语句查询的结果是我们经常要用到的,每次都写的很繁琐,所以我们可以把常用的复杂的查询直接建立视图,把它当成hibernate中的一个表来处理,这样可以极简化我们的开发,便于日常维护。
创建视图SQL语句
2、代码编写
(1)创建实体类Storealert
package com.itzheng.erp.entity;
public class Storealert {
private Long uuid;
private String name;
private Long storenum;
private Long outnum;
public Long getUuid() {
return uuid;
}
public void setUuid(Long uuid) {
this.uuid = uuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getStorenum() {
return storenum;
}
public void setStorenum(Long storenum) {
this.storenum = storenum;
}
public Long getOutnum() {
return outnum;
}
public void setOutnum(Long outnum) {
this.outnum = outnum;
}
@Override
public String toString() {
return “Storealert [uuid=” + uuid + “, name=” + name + “, storenum=” + storenum + “, outnum=” + outnum + “]”;
}
}
(2)创建映射文件
映射文件:storealert.hbm.xml
(3)数据访问层实现
在IStoredetailDao和StoredetailDao中加入方法与实践
1)IStoredetailDao
2)IStoredetailDao
(4)业务逻辑层实现
在IStoredetailBiz和StoredetailBiz中添加方法与实现
(5)Action层的实现
在StoredetailAction中加入方法:
(6)页面代码
1)添加js/storealert.js
2)添加storealert.html文件
3)运行结果
http://localhost:8080/erp/storealert.html
1、需求分析
实现发送邮件预警功能,根据相关人员进行采购,点击“发送警报邮件”按钮即可发送库存报警
如果存在报警商品并成功发送 ,提示发送成功
如果不存在报警商品,提示没有库存报警商品
2、JavaMail介绍
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP。开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议底层的实现细节,只要调用JavaMail开发包中相应的API类就可以了。
使用 JavaMail,我们可以实现类似 OutLook、FoxMail 的软件
Spring的javaMailSender对JavaMail进行封装,简化了开发,告别繁琐的API
3、ERP中实现发送预警邮件
(1)添加依赖
在父工程的pom.xml中添加java mail的依赖
(2)编写发送邮件的工具类
在业务逻辑层当中创建MailUtil
(3)编写spring配置文件
创建applicationContext_mail.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:context=“http://www.springframework.org/schema/context”
xmlns:aop=“http://www.springframework.org/schema/aop” xmlns:tx=“http://www.springframework.org/schema/tx”
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
">
true
true
(4)编写业务逻辑类
给IStoredetailBiz和StoredetailBiz添加sendStoreAlertMail方法
IStoredetailBiz
StoredetailBiz
private MailUtil mailUtil;
public void setMailUtil(MailUtil mailUtil) {
this.mailUtil = mailUtil;
}
private String toAddress;// 收件箱
private String subject;// 主题
private String text;// 正文
public void setToAddress(String toAddress) {
this.toAddress = toAddress;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setText(String text) {
this.text = text;
}
/**
-
发送库存预警邮件
-
@throws MessagingException
*/
public void sendStoreAlertMail() throws MessagingException {
// 得到库存预警列表
List storeAlertList = storedetailDao.getStorealertList();
if (storeAlertList.size() > 0) {
mailUtil.sendMail(toAddress,
subject.replace(“[time]”, new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”).format(new Date())),
text.replace(“[count]”, String.valueOf(storeAlertList.size())));
} else {
throw new ErpException(“没有库存预警信息”);
}
}
(5)修改applicationContext_biz.xml
storedeatilBiz节点,添加
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
a开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-3Wyo8ODm-1715723645200)]
[外链图片转存中…(img-5GUNP4VI-1715723645201)]
[外链图片转存中…(img-xZl6CiwE-1715723645201)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!