package com.weidong.datebase.impl;
import com.weidong.datebase.SaleSQL;
import com.weidong.datebase.impl.superclass.BaseSQL;
import com.weidong.entity.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class SaleSQL_Impl extends BaseSQL implements SaleSQL {
public static void main(String[] args) {
SaleSQL_Impl impl = new SaleSQL_Impl();
}
@Override
public List<Sale> queryAllSale() {
Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs = null;
List<Sale> list = new ArrayList<>();
String sql1 = "select * from sale where "+SaleSQL.IS_NORMAL_SALE;
try {
conn = getConn();
pStmt = conn.prepareStatement(sql1);
rs = pStmt.executeQuery();
while (rs.next()) {
Sale sale = new Sale();
sale.setId(rs.getInt("sale_id"));
sale.setName(rs.getString("sale_name"));
sale.setPrice(rs.getDouble("sale_price"));
sale.setCustomerPurchase(null);
sale.setSaleMakeup(new Makeup());
sale.getSaleMakeup().setSale(sale);
sale.getSaleMakeup().setMakeup(new HashSet<>());
//makeup准备初始。
list.add(sale);
//第一层,sale初始载入完成。
this.loadMakeupToSale(sale,sale.getId(),conn);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeAll(conn,pStmt,rs);
}
return list;
}
/*本类的方法提炼-1。
* 使用:适合数据库访问正进行到一半时。
* 前提:sale的各个属性已载入或初始完成,
* 否则:可能会有空指针。
* 提示:本方法中不会关闭conn。方法创建并关闭statement和resultSet,不影响主调函数的操作。
* */
private void loadMakeupToSale(Sale sale, int id, Connection conn){
PreparedStatement pStmt2 = null;
PreparedStatement pStmt3 = null;
PreparedStatement pStmt3_1 = null;
ResultSet rs2 = null;
ResultSet rs3 = null;
ResultSet rs3_1 = null;
String sql2 = "select goods.goods_id, goods_name, goods_type, number_c, number_n " +
"from makeup, goods " +
"where makeup.goods_id = goods.goods_id " +
"and makeup.sale_id = ?";
String sql3 = "select * from import where import.goods_id = ?";
String sql3_1 = "select * from remove where remove.goods_id = ?";
try {
pStmt2 = conn.prepareStatement(sql2);
pStmt2.setObject(1,id);
rs2 = pStmt2.executeQuery();
while (rs2.next()) {
Makeup.Node node = new Makeup.Node();
node.setGoods(new Goods());
node.getGoods().setId(rs2.getInt("goods_id"));
node.getGoods().setName(rs2.getString("goods_name"));
node.getGoods().setType(rs2.getString("goods_type"));
node.getGoods().setC(rs2.getInt("number_c"));
node.getGoods().setComposeSale(null); //不向上层载入
node.getGoods().setImports(new ArrayList<>());
node.getGoods().setRemoves(new ArrayList<>());
node.setN(rs2.getInt("number_n"));
sale.getSaleMakeup().getMakeup().add(node);
//第二层,node对应goods全载入完成.
pStmt3 = conn.prepareStatement(sql3);
pStmt3.setObject(1,node.getGoods().getId());
rs3 = pStmt3.executeQuery();
while (rs3.next()) {
Import imp = new Import();
imp.setId(rs3.getInt("import_id"));
imp.setGoods(node.getGoods());
imp.setA(rs3.getInt("number_a"));
imp.setDate(rs3.getDate("import_date"));
node.getGoods().getImports().add(imp);
//第三层,imp全载入完成。
}
pStmt3_1 = conn.prepareStatement(sql3_1);
pStmt3_1.setObject(1,node.getGoods().getId());
rs3_1 = pStmt3_1.executeQuery();
while (rs3_1.next()) {
Remove rem = new Remove();
rem.setId(rs3_1.getInt("remove_id"));
rem.setGoods(node.getGoods());
rem.setDate(rs3_1.getDate("remove_date"));
rem.setO(rs3_1.getInt("number_o"));
node.getGoods().getRemoves().add(rem);
//第三层,rem全载入完成。
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeAll(null,pStmt2,rs2);
closeAll(null,pStmt3,rs3);
closeAll(null,pStmt3_1,rs3_1);
}
}
@Override
public Sale querySaleById(int id) {
Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs = null;
Sale sale = null;
String sql1 = "select * from sale where sale_id = ? and "+SaleSQL.IS_NORMAL_SALE;
try {
conn = getConn();
pStmt = conn.prepareStatement(sql1);
pStmt.setObject(1,id);
rs = pStmt.executeQuery();
if (rs.next()) {
sale = new Sale();
sale.setId(rs.getInt("sale_id"));
sale.setName(rs.getString("sale_name"));
sale.setPrice(rs.getDouble("sale_price"));
sale.setCustomerPurchase(null);
sale.setSaleMakeup(new Makeup());
sale.getSaleMakeup().setSale(sale);
sale.getSaleMakeup().setMakeup(new HashSet<>());
//sale初步全载入完成。
this.loadMakeupToSale(sale,sale.getId(),conn);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeAll(conn,pStmt,rs);
}
return sale;
}
@Override
public List<Sale> querySaleLikeName(String info) {
Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs = null;
List<Sale> list = new ArrayList<>();
String sql1 = "select * from sale where sale_name like ? and "+SaleSQL.IS_NORMAL_SALE;
try {
conn = getConn();
pStmt = conn.prepareStatement(sql1);
pStmt.setObject(1,"%"+info+"%"); //模糊查询,%在此处加。
rs = pStmt.executeQuery();
while (rs.next()) {
Sale sale = new Sale();
sale.setId(rs.getInt("sale_id"));
sale.setName(rs.getString("sale_name"));
sale.setPrice(rs.getDouble("sale_price"));
sale.setCustomerPurchase(null);
sale.setSaleMakeup(new Makeup());
sale.getSaleMakeup().setSale(sale);
sale.getSaleMakeup().setMakeup(new HashSet<>());
list.add(sale);
//第一层,sale初始载入完成。
this.loadMakeupToSale(sale,sale.getId(),conn);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeAll(conn,pStmt,rs);
}
return list;
}
@Override
public List<Sale> querySaleAndPurchaseLikeName(String info) {
Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs = null;
List<Sale> list = new ArrayList<>();
String sql1 = "select * from sale where sale_name like ? and "+SaleSQL.IS_NORMAL_SALE;
try {
conn = getConn();
pStmt =
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
超市信息管理系统,SQL Server + IDEA + JAVA 图形用户界面.zip (181个子文件)
SaleSQL_Impl.class 20KB
CustomerSQL_Impl.class 13KB
SaleBizImpl.class 9KB
CustomerLogJFrame.class 9KB
GoodsBizImpl.class 9KB
SupermarketJFrame.class 7KB
GoodsSQL_Impl.class 7KB
CustomerBuyJFrame.class 7KB
CustomerBizImpl.class 7KB
SaleMessageDialog.class 7KB
MgrRole.class 7KB
WelcomeJFrame.class 5KB
SupermarketJFrame$OneSale.class 5KB
CustomerRole.class 4KB
CustomerLogJFrame$ContinueRespond.class 4KB
TableGoods.class 4KB
Goods.class 3KB
MyJOptionPane.class 3KB
SaleBuyInputDialog.class 3KB
CustomerInputDialog.class 3KB
Sale.class 2KB
WelcomeJFrame$SearchRespond.class 2KB
Customer.class 2KB
SupermarketJFrame$TreeSelectRespond.class 2KB
GoodsBiz.class 2KB
BaseSQL.class 2KB
SQLServerConnection.class 2KB
VisitorRole.class 2KB
CustomerLogJFrame$SearchRespond.class 2KB
CustomerBuyJFrame$SearchRespond.class 2KB
SaleSQL.class 2KB
SaleBiz.class 2KB
CustomerBuyJFrame$BuyRespond.class 2KB
CustomerBuyJFrame$SeeRespond.class 2KB
GoodsSQL.class 2KB
SaleBuyInputDialog$BuyRespond.class 1KB
SaleMessageDialog$selectRespond.class 1KB
Purchase.class 1KB
RegisterInputDialog.class 1KB
CustomerSQL.class 1KB
CustomerInputDialog$CommitRespond.class 1KB
WelcomeJFrame$registerRespond.class 1KB
WelcomeJFrame$LoginRespond.class 1KB
CustomerLogJFrame$ContinueRespond$1.class 1KB
CustomerBiz.class 1KB
SupermarketJFrame$GoodsObject.class 1KB
CustomerLogJFrame$DisposeRespond.class 1KB
CustomerInputDialog$InputResult.class 1KB
ModifyInputDialog.class 1KB
CustomerBuyJFrame$JumpToCustomerLogRespond.class 1KB
SaleBuyInputDialog$InputResult.class 1KB
Remove.class 1KB
Import.class 1KB
CustomerLogJFrame$ModifyPwdRespond.class 1KB
CustomerBizImpl$2.class 1KB
CustomerBizImpl$1.class 1KB
CustomerBuyJFrame$JumpToWelcomeRespond.class 1KB
GoodsBizImpl$1.class 1KB
SaleBizImpl$6.class 1KB
Makeup.class 1KB
SaleBizImpl$5.class 1KB
SaleBizImpl$4.class 1KB
GoodsBizImpl$2.class 1KB
SaleBizImpl$3.class 1KB
GoodsBizImpl$4.class 1KB
GoodsBizImpl$3.class 1KB
SaleBizImpl$7.class 1KB
SaleBizImpl$8.class 1KB
GoodsBizImpl$5.class 1KB
SaleBizImpl$1.class 1KB
SaleBizImpl$2.class 1KB
CustomerInputDialog$CancelRespond.class 1010B
CustomerLogJFrame$JumpToCustomerBuyResponse.class 1004B
SaleBuyInputDialog$NotBuyRespond.class 1002B
SupermarketJFrame$TableRespond.class 975B
SaleMessageDialog$SaleObject.class 968B
SupermarketJFrame$SaleObject.class 947B
CustomerLogJFrame$SaleItem.class 941B
LoginInputDialog.class 895B
Makeup$Node.class 850B
Goods$Node.class 840B
CustomerLogJFrame$ModifyNameRespond.class 780B
IdNotFoundException.class 729B
BusinessImpl.class 680B
Supermarket_Member.class 620B
Role.class 618B
Analysable.class 471B
WelcomeJFrame$SaleMessage.class 428B
AlreadyExistedAddException.class 358B
ValueUnreasonException.class 346B
PassFailedException.class 337B
ItemCountException.class 334B
Recoverable.class 198B
Removable.class 193B
Buyable.class 165B
.gitignore 176B
Supermarket-Dec2021.iml 484B
mssql-jdbc-9.4.0.jre16.jar 1.3MB
SaleSQL_Impl.java 29KB
CustomerLogJFrame.java 17KB
共 181 条
- 1
- 2
资源评论
博士僧小星
- 粉丝: 1945
- 资源: 5903
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 以下是一些适用于英语六级作文的万能句型模板,涵盖了引言、正文和结论部分的各类表达方式.docx
- MATLAB中的非线性规划
- 进行C语言面试资格确认是招聘过程中一个重要的步骤,目的是确保候选人具备足够的C语言编程能力和知识.docx
- Java 轻量级的集群负载均衡设计
- 纹身师个人网站模板.jpg
- 在C语言中,连接两个字符串(即将一个字符串附加到另一个字符串的末尾)通常可以使用标准库中的 `strcat` 函数.docx
- 数据库管理工具:dbeaver-ce-23.1.1-stable.x86-64.rpm
- 以下是几个具体竞赛题目的详细解答,包括建模思路、方法和步骤 .docx
- 一份关于全国大学生建模大赛的相关教程!!
- 以下是关于计算机网络和现代通信组网的详细教程、案例和相关项目的推荐.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功