位置: IT常识 - 正文

JavaWeb购物系统(六)购物车订单模块的实现(java web购物系统)

编辑:rootadmin
JavaWeb购物系统(六)购物车订单模块的实现 效果图

推荐整理分享JavaWeb购物系统(六)购物车订单模块的实现(java web购物系统),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javaweb购物网站,购物系统java代码,javaweb购物商城,javaweb购物网站,java在线购物系统,javaweb购物车系统,javaweb购物网站,java在线购物系统,内容如对您有帮助,希望把文章链接给更多的朋友!

有订单时的效果图 无订单时的效果图 订单详情页

功能生成订单订单页的展示查看订单详情正文说明

和购物车同样的,首先得知道我们的订单对应的哪个实体对象。一个用户可能有多条订单记录,一个订单里边可以包含多个商品(也可以理解为多个购物项)。理清这个逻辑之后,我们就可以得到两个实体:订单实体类和详细的订单项 对应到界面上就是如下图:

order.jsp(订单页)<%@ page import="com.service.OrderService" %><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%><%@ page import="com.myUtil.ProcessUtil" %><%@ page import="com.entity.Order" %><%@ page import="java.util.List" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%-- Created by IntelliJ IDEA. User: huawei Date: 2022/10/22 Time: 20:02 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>我的订单</title> <!-- 新 Bootstrap5 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/css/bootstrap.min.css"> <%--icon图标--%> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css"> <!-- popper.min.js 用于弹窗、提示、下拉菜单 --> <script src="https://cdn.staticfile.org/popper.js/2.9.3/umd/popper.min.js"></script> <!-- 最新的 Bootstrap5 核心 JavaScript 文件 --> <script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.min.js"></script> <script type="text/javascript" src="script/jquery-3.6.0.min.js"></script></head><body><% OrderService orderService = new OrderService(); String userId = ProcessUtil.getUserIdBySessionId(session); List<Order> orderList= orderService.showAllOrder(userId); if (orderList!=null && orderList.size()!=0){ session.setAttribute("orderList",orderList); }%><nav class="navbar-expand-lg navbar navbar-dark bg-primary"> <div class="container-fluid "> <a class="navbar-brand" href="#">我的订单</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNavDropdown"> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="/MyProject/index.jsp">Home</a> </li> </ul> </div> </div></nav><c:if test="${empty sessionScope.orderList}"> <div class="container" > <div class="card position-relative" style="margin: 50px;height: 280px;background: #ffffff url(img/CartBackground.png) no-repeat; background-position: center left;"> <div class="position-absolute top-50 start-50 translate-middle"> <h7> 您还未购买过任何商品哦!赶紧行动吧!您可以: </h7><br> <a class="btn btn-primary btn-lg" href="/MyProject/index.jsp">购物</a> </div> </div> </div></c:if><c:if test="${!empty sessionScope.orderList}"> <div class="container"> <div class="card"> <table class="table table-hover text-center"> <tr> <td>订单号</td> <td>下单时间</td> <td>总价</td> <td>状态</td> <td>详情</td> </tr> <c:forEach items="${sessionScope.orderList}" var="order"> <tr style="vertical-align: middle !important;text-align: center;"> <td> <%--<img style="width: 100px;height: 100px" src="${or}"/>--%> <span>${order.id}</span> </td> <td> <%--分割下单时间--%> <c:set value="${fn:split(order.create_time,'T')}" var="time"></c:set> <c:forEach var="tm" items="${time}"> ${tm} </c:forEach> </td> <td>${order.price}</td> <td>0</td> <td><a type="submit" class="btn btn-danger" href="/MyProject/orderDetail.jsp?orderId=${order.id}">查看</a></td> </tr> </c:forEach> </table> <div class="row justify-content-between"> </div> </div> </div></c:if></body></html>订单的展示

这里通过在jsp页面,调用service层的showAllOrder()来获取所有的订单列表。然后通过for-Each来将列表的每条信息渲染到前端页面

订单的查看

和前面几节讲的留言删除、删除购物项思路一样,通过携带唯一标识ID(下单时间的毫秒数)来查看对应订单的详细信息。因为查看订单详情需要跳转页面,所有我们这里采用<a></a>标签来进行跳转。相关代码:

<td><a type="submit" class="btn btn-danger" href="/MyProject/orderDetail.jsp?orderId=${order.id}">查看</a></td>orderDetail.jsp(订单详情页)<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ page import="com.entity.OrderItem" %><%@ page import="com.service.OrderItemService" %><%@ page import="java.util.List" %><%@ page import="com.service.OrderService" %><%@ page import="com.myUtil.ProcessUtil" %><%-- Created by IntelliJ IDEA. User: huawei Date: 2022/10/22 Time: 22:40 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>订单详情页</title> <!-- 新 Bootstrap5 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/css/bootstrap.min.css"> <%--icon图标--%> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css"> <!-- popper.min.js 用于弹窗、提示、下拉菜单 --> <script src="https://cdn.staticfile.org/popper.js/2.9.3/umd/popper.min.js"></script> <!-- 最新的 Bootstrap5 核心 JavaScript 文件 --> <script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.min.js"></script> <script type="text/javascript" src="script/jquery-3.6.0.min.js"></script></head><body><% OrderItemService orderItemService = new OrderItemService();// String orderId = (String)session.getAttribute("orderId");// if (orderId==null){ // 当用户重新登录之后/重启服务器,seesion域中会清空orderId。所以需要 String orderId = request.getParameter("orderId");// } List<OrderItem> orderItems = orderItemService.showAllOrderItem(orderId); if (orderItems !=null && orderItems.size()!=0){ session.setAttribute("orderItems",orderItems); }%><nav class="navbar-expand-lg navbar navbar-dark bg-primary"> <div class="container-fluid "> <a class="navbar-brand" href="#">订单详情页</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNavDropdown"> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="/MyProject/index.jsp">Home</a> </li> </ul> </div> </div></nav><c:if test="${!empty sessionScope.orderItems}"> <div class="container"> <div class="card"> <table class="table table-hover text-center"> <tr> <td>订单号</td> <td>商品名称</td> <td>价格</td> <td>数量</td> <td>总价格</td> </tr> <c:forEach items="${sessionScope.orderItems}" var="orderItem"> <tr style="vertical-align: middle !important;text-align: center;"> <td>${orderItem.order_id}</td> <td> <img style="width: 100px;height: 100px" src="${orderItem.img}"/> <span>${orderItem.name}</span> </td> <td>${orderItem.price}</td> <td>${orderItem.count}</td> <td>${orderItem.total_price}</td> </tr> </c:forEach> </table> </div> </div></c:if></body></html>订单详情的展示JavaWeb购物系统(六)购物车订单模块的实现(java web购物系统)

在上边查看详情页按钮的代码中可以看到,跳转的不是Controller层,而是跳转到了orderDetail.jsp页面。在详情页面,通过请求携带的订单Id,来获取数据库的中的订单项数据。

不知道大家到这里会不会很奇怪?订单项是一个对象,订单也是一个对象。我们的订单和订单项的展示,都需要从数据库来获取,那么这两个对象是什么时候存储到数据库中的呢?

别急。下边就是答案: 当我们在购物车中点击结算按钮的时候,他就会生成订单对象以及和它对应的订单项。 我们这里解释一下,它的前后端是如何处理的:

// 结算$("#settlement").click( function () { $.post( "/MyProject/orderProcessServlet", { method: "" }, function (data) { if ("success" == data){ alert("订单生成成功!"); location.reload(true); } }, "json" ) })

这段js代码在上一章节中,因为它属于购物车部分。是发送结算请求。请求地址是/orderProcessServlet,即我们的订单对应的Controller层。

OrderProcessServlet(订单处理层)package com.controller;import com.entity.*;import com.google.gson.Gson;import com.myUtil.JdbcUtil;import com.myUtil.ProcessUtil;import com.service.OrderService;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;public class OrderProcessServlet extends HttpServlet { private OrderService orderService = new OrderService(); @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { HttpSession session = request.getSession(); Cart cart = (Cart) session.getAttribute("cart"); String userId = ProcessUtil.getUserIdBySessionId(session); if (cart==null || cart.getItems().size()==0){ response.sendRedirect("/MyProject/index.jsp"); return; } if (cart!=null){ // 对生成订单进行事务控制 String orderId = null; try { orderId = orderService.saveOrder(cart, Integer.parseInt(userId)); JdbcUtil.commit(); session.setAttribute("orderId",orderId); response.getWriter().write(new Gson().toJson("success")); } catch (Exception e) { // 如果出错事务回滚 JdbcUtil.rollback(); e.printStackTrace(); } } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { doPost(request, response); }}orederService(订单处理的业务层)package com.service;import com.dao.GoodsDao;import com.dao.OrderDao;import com.dao.OrderItemDao;import com.entity.*;import java.time.LocalDateTime;import java.util.HashMap;import java.util.List;public class OrderService { private OrderDao orderDao = new OrderDao(); private OrderItemDao orderItemDao = new OrderItemDao(); private GoodsDao goodsDao = new GoodsDao(); // 生成订单 public String saveOrder(Cart cart, Integer userId){ // 生成订单号 String orderId = String.valueOf(System.currentTimeMillis()); // 订单生成时间 LocalDateTime createTime = LocalDateTime.now(); Order order = new Order(orderId,createTime,cart.getTotalPrice(),0,userId); // 保存order表到数据库 orderDao.addOrder(order); // 构建orderItem,并保存到数据库 HashMap<Integer, ShopCarItem> items = cart.getItems(); for (Integer goodId : items.keySet()) { ShopCarItem item = items.get(goodId); OrderItem orderItem = new OrderItem(null, item.getImg(), item.getGoodsName(), item.getPrice(), item.getNumber(), item.getTotalPrice(), orderId); orderItemDao.addOrderItem(orderItem); // 得到商品信息 Goods goods = goodsDao.showDataById(String.valueOf(goodId)); // 更新库存 goods.setInventory(goods.getInventory() - item.getNumber()); // 更新到数据库 goodsDao.updateStock(goods); } // 清空购物车 cart.removeAll(); return orderId; } // 显示所有订单 public List<Order> showAllOrder(String userId){ return orderDao.showAllOrder(userId); }}

接着上边的逻辑,当生成订单请求发过来之后,在这Controller层调用Service层的saveOrder()进行了订单的生成,而且在Service层我们进行了订单保存,订单项的保存。而且我们注意到saveOrder()的参数是Cart购物车对象和用户Id。因为订单和订单项的所有信息都是从购物车来获取的,而且每个订单得有对应的用户(我们得保证自己的订单不能出现在别人的页面上,对吧^_^)。 当然生成订单之后还得清空购物车。

orderItemServicepackage com.service;import com.dao.OrderItemDao;import com.entity.OrderItem;import java.util.List;public class OrderItemService { private OrderItemDao orderItemDao = new OrderItemDao(); // 显示所有订单项 public List<OrderItem> showAllOrderItem(String orderId){ return orderItemDao.showAllOrderItem(orderId); }}orderDaopackage com.dao;import com.entity.Order;import java.util.List;public class OrderDao extends BasicDao<Order> { // 生成订单 public Boolean addOrder(Order order){ String sql = "INSERT INTO `order` VALUES('"+order.getId()+"','"+order.getCreate_time()+"',"+order.getPrice()+","+order.getStatus()+","+order.getMember_id()+")"; return dmlData(sql); } // 显示所有订单 public List<Order> showAllOrder(String userId){ String sql = "SELECT * FROM `order` WHERE `member_id`='" + userId + "'"; List<Order> orders = queryMulti(sql, Order.class); if (orders!=null){ return orders; } return null; }}orderItemDaopackage com.dao;import com.entity.OrderItem;import java.util.List;public class OrderItemDao extends BasicDao<OrderItem>{ // 添加订单项 public Boolean addOrderItem(OrderItem orderItem){ String sql = "INSERT INTO `order_item` VALUES(NULL,'"+ orderItem.getImg() +"','"+ orderItem.getName() + "',"+ orderItem.getPrice() +","+ orderItem.getCount() +","+ orderItem.getTotal_price() +",'"+ orderItem.getOrder_id() +"')"; return dmlData(sql); } // 显示所有订单项 public List<OrderItem> showAllOrderItem(String orderId){ String sql = "SELECT * FROM `order_item` WHERE `order_id`='"+ orderId +"'"; List<OrderItem> orderItems = queryMulti(sql, OrderItem.class); if (orderItems != null){ return orderItems; } return null; }}order(订单实体类)

订单实体类拥有属性:

订单号(订单结算的毫秒时间)订单生成时间订单金额订单状态(这里我们没有太多的功能,所以默认是0)订单所属者(每个订单属于哪个用户)package com.entity;import java.math.BigDecimal;import java.time.LocalDateTime;public class Order { // 订单号 private String id; // 订单生成时间 private LocalDateTime create_time; // 订单金额 private BigDecimal price; // 订单状态 private Integer status; // 该订单对应的用户id private Integer member_id; public Order() { } public Order(String id, LocalDateTime create_time, BigDecimal price, Integer status, Integer member_id) { this.id = id; this.create_time = create_time; this.price = price; this.status = status; this.member_id = member_id; } public String getId() { return id; } public void setId(String id) { this.id = id; } public LocalDateTime getCreate_time() { return create_time; } public void setCreate_time(LocalDateTime create_time) { this.create_time = create_time; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Integer getMember_id() { return member_id; } public void setMember_id(Integer member_id) { this.member_id = member_id; } @Override public String toString() { return "Order{" + "id='" + id + '\'' + ", create_time=" + create_time + ", price=" + price + ", status=" + status + ", member_id=" + member_id + '}'; }}orderItem(订单项实体类)

订单项的实体类拥有的属性:

订单项唯一的标识Id商品图片商品的价格商品数量订单项的总价格订单项的所属的订单(订单项都是从属于某一个订单)package com.entity;import java.math.BigDecimal;public class OrderItem { // 订单项的自增ID private Integer id; // 商品图片 private String img; // 商品名 private String name; // 商品价格 private BigDecimal price; // 商品数量 private Integer count; // 订单项的总价 private BigDecimal total_price; // 对应的订单号 private String order_id; public OrderItem() { } @Override public String toString() { return "OrderItem{" + "id=" + id + ", img='" + img + '\'' + ", name='" + name + '\'' + ", price=" + price + ", count=" + count + ", total_price=" + total_price + ", order_id='" + order_id + '\'' + '}'; } public String getImg() { return img; } public void setImg(String img) { this.img = img; } public OrderItem(Integer id, String img, String name, BigDecimal price, Integer count, BigDecimal total_price, String order_id) { this.id = id; this.img = img; this.name = name; this.price = price; this.count = count; this.total_price = total_price; this.order_id = order_id; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public BigDecimal getTotal_price() { return total_price; } public void setTotal_price(BigDecimal total_price) { this.total_price = total_price; } public String getOrder_id() { return order_id; } public void setOrder_id(String order_id) { this.order_id = order_id; }}order表的设计列名数据类型长度主键?非空?自增?idvarchar64√√create_timedatetime√pricedecimal11,2√statuetinyint32√memberint√orderItem表的设计列名数据类型长度主键?非空?自增?idint√√√imgvarchar500√namevarchar500√pricedecimal11,2√countint√total_pricedecimal11,2√order_idvarchar64√

这里我们得保证实体类的属性名要和对应表的字段名保持一致!!!

本文链接地址:https://www.jiuchutong.com/zhishi/295162.html 转载请保留说明!

上一篇:【uni-app】小程序实现微信在线聊天(私聊/群聊)(小程序uniapp怎么用)

下一篇:Linn of Quoich瀑布旁的碗状岩石洞,苏格兰阿伯丁郡 (© AWL Images/Danita Delimont)(fall 瀑布)

  • 苹果自带日历怎么显示节日(苹果自带日历怎么删除日程)

    苹果自带日历怎么显示节日(苹果自带日历怎么删除日程)

  • 如何领取红包封面(如何领取红包封面序列号)

    如何领取红包封面(如何领取红包封面序列号)

  • iphone摄像头玻璃碎了怎么办(iphone摄像头玻璃是什么材质)

    iphone摄像头玻璃碎了怎么办(iphone摄像头玻璃是什么材质)

  • qq注销后游戏实名会清除吗(qq注销后游戏实名认证会被删除吗)

    qq注销后游戏实名会清除吗(qq注销后游戏实名认证会被删除吗)

  • qq号长时间不登录会被注销吗(qq号长时间不登陆会被注销吗)

    qq号长时间不登录会被注销吗(qq号长时间不登陆会被注销吗)

  • cad直线为什么不能指定某个点(cad直线为什么不能输入距离)

    cad直线为什么不能指定某个点(cad直线为什么不能输入距离)

  • 如何查看手机上照片的分辨率(如何查看手机上次使用时间)

    如何查看手机上照片的分辨率(如何查看手机上次使用时间)

  • 蓝牙a2dp是什么意思(蓝牙连接a2 dp什么意思)

    蓝牙a2dp是什么意思(蓝牙连接a2 dp什么意思)

  • 32位微信和64位微信的区别

    32位微信和64位微信的区别

  • 苹果手机相机实况是什么意思(苹果手机相机实况模式长曝光在哪里)

    苹果手机相机实况是什么意思(苹果手机相机实况模式长曝光在哪里)

  • 12306订票后多久取票(12306订票多久退不用手续费)

    12306订票后多久取票(12306订票多久退不用手续费)

  • 华为vrstore可以卸载吗(华为vrstore有什么用)

    华为vrstore可以卸载吗(华为vrstore有什么用)

  • 优酷手机会员和电视会员相同吗(优酷手机会员和电视会员)

    优酷手机会员和电视会员相同吗(优酷手机会员和电视会员)

  • 快充和数据线有关系吗(快充和数据线有关系还是和插头有关系)

    快充和数据线有关系吗(快充和数据线有关系还是和插头有关系)

  • 电脑页面倒置了怎么办(电脑页面倒过来了)

    电脑页面倒置了怎么办(电脑页面倒过来了)

  • 怎样把电影下载到u盘里面(怎样把电影下载到内存卡上)

    怎样把电影下载到u盘里面(怎样把电影下载到内存卡上)

  • wps文档如何快速查找(wps文档如何快速查找想要内容)

    wps文档如何快速查找(wps文档如何快速查找想要内容)

  • 手机怎样定对方位(手机怎样定对方位置信息)

    手机怎样定对方位(手机怎样定对方位置信息)

  • 怎么通过照片原图定位(怎么通过照片原图定位手机)

    怎么通过照片原图定位(怎么通过照片原图定位手机)

  • 微信如何添加好友标签   (微信如何添加好友不被限制)

    微信如何添加好友标签   (微信如何添加好友不被限制)

  • 液晶显示器的主要技术指标不包括(液晶显示屏厂家)

    液晶显示器的主要技术指标不包括(液晶显示屏厂家)

  • 苹果手机耳返功能在哪设置(苹果手机耳返功能怎么关闭)

    苹果手机耳返功能在哪设置(苹果手机耳返功能怎么关闭)

  • Win10专业版如何解除系统限制的下载和上传速度?(win10专业版如何关闭系统更新)

    Win10专业版如何解除系统限制的下载和上传速度?(win10专业版如何关闭系统更新)

  • Vue2 Element description组件 列合并

    Vue2 Element description组件 列合并

  • 下载、编译、安装、使用 vue-devtools(编译安装和普通安装)

    下载、编译、安装、使用 vue-devtools(编译安装和普通安装)

  • C++ 一种交换两个数的思路(c++交换语句)

    C++ 一种交换两个数的思路(c++交换语句)

  • 来料加工生产成本账务处理
  • 包装纸箱属于原材料吗
  • 房屋租赁和服务费发票的区别
  • 小规模纳税人季报是哪几个月
  • 没经营的个体户营业执照怎么注销
  • 对外支付代扣代缴企业所得税
  • 合同能源管理项目账务处理
  • 库存商品内部划转怎么做账?
  • 企业政策性搬迁所得税
  • 收到实收资本要交什么税
  • 主营业务成本计算公式是什么
  • 税交多了退税走到哪一流程了问谁
  • 收到技术咨询费摘要
  • 开具增值税发票销货清单的最新规定是什么
  • 购进药材如何抵扣进项税额
  • 房地产企业未出售的房子是否要交房产税
  • 资产负债表属于会计报表吗
  • 公司向个人租车协议范本
  • 职工福利费进项税转出怎样做账务处理
  • 拍短视频服务费怎么算
  • 委托检验报告能否作为处罚依据
  • 外贸公司收汇可以收运费吗
  • 开始菜单无法打开怎么办
  • 修改hosts文件的软件
  • win10商店如何改地区
  • 销售部发生广告宣传费计入财务费用
  • 支付货款的流程
  • 其他业务收入借贷方向
  • 建筑业异地施工可以先开发票么
  • 取得剧本使用费怎么做账
  • 运输发票税金怎么算
  • 大脊山,英格兰峰区国家公园 (© John Finney Photography/Moment/Getty Images)
  • 边角料是否计入生产成本
  • 推荐国内免费使用的电影
  • php eval绕过
  • 公司的内账
  • 小规模纳税人应交税费科目设置
  • 织梦发布文章栏目怎么不显示
  • 增值税专用发票上注明的价款含税吗
  • 核定征收一般纳税人进项是否可抵扣
  • 纳税人办理普通发票流程
  • 企业所得税扣除项目
  • 公司买的茶叶怎么入账
  • 现金回收率怎么计算
  • 劳务费怎么做会计科目
  • 资产评估机构可以评估土地吗
  • 文化事业建设费会计分录
  • 预付账款年底怎么调账
  • 工资代发户怎么开
  • 应交税金的负数重分类
  • 房地产行业增值税预缴
  • 原料到产品
  • 代金券消费怎么入账
  • 建筑业发票可以抵扣制造业进项
  • 总公司可以开发票给分公司吗
  • 多打的投资款怎么入账
  • 个体户银行开户所需资料
  • 资产负债表中的固定资产是原值还是净值
  • 计提税金及附加的金额如何算
  • 暂估入账后续处理
  • 在mysql中使用mysql workbench创建数据库
  • mysql获取表行数的方法
  • 如何动态修改mysql的全局参数
  • sql参数化是什么意思
  • 华硕和联想笔记本电脑哪个好点
  • linux执行sh文件显示不存在
  • 使用jquery操作dom
  • tomcat怎么启动
  • javascript入门教程
  • python3m
  • 一款简单的网络版多媒体课件制作软件是什么
  • java教程
  • android应用程序包下载安装
  • 国家税务总局全国增值税发票官网
  • 江苏电子税务局网站官网
  • 新疆天山农商银行大额存单2024
  • 国家税务总局验证码
  • 建筑企业个人所得税管理办法
  • 南通五险一金最低比例
  • 厦门红大税务师事务所怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设