ssm框架的简单案例

article/2025/9/19 1:36:50

学完ssm框架后做了一个简单的案例,实现简单的增删改查。

项目结构图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看项目结构:
在这里插入图片描述
关键代码:

前端是jsp技术,当然也可以用vue分离的自己选择就好。

订单页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@page isELIgnored="false" %>
<%@include file="./common/head.jsp"%><div class="right"><div class="location"><strong>你现在所在的位置是:</strong><span>订单管理页面</span></div><div class="search"><form method="get" action="${pageContext.request.contextPath }/jsp/bill.do"><input name="method" value="query" class="input-text" type="hidden"><span>商品名称:</span><input name="queryProductName" type="text" value="${queryProductName }"><span>供应商:</span><select name="queryProviderId"><c:if test="${providerList != null }"><option value="0">--请选择--</option><c:forEach var="provider" items="${providerList}"><option value="${provider}">${provider}</option></c:forEach></c:if></select><span>是否付款:</span><select name="queryIsPayment"><option value="0">--请选择--</option><option value="1" ${queryIsPayment == 1 ? "selected=\"selected\"":"" }>未付款</option><option value="2" ${queryIsPayment == 2 ? "selected=\"selected\"":"" }>已付款</option></select><input	value="查 询" type="submit" id="searchbutton"><a href="${pageContext.request.contextPath }/billadd">添加订单</a></form></div><!--账单表格 样式和供应商公用--><table class="providerTable" cellpadding="0" cellspacing="0"><tr class="firstTr"><th width="10%">订单编码</th><th width="20%">商品名称</th><th width="10%">供应商</th><th width="10%">订单金额</th><th width="10%">是否付款</th><th width="10%">创建时间</th><th width="30%">操作</th></tr><c:forEach var="bill" items="${billList }" varStatus="status"><tr><td><span>${bill.billCode }</span></td><td><span>${bill.productName }</span></td><td><span>${bill.providerId}</span></td><td><span>${bill.totalPrice}</span></td><td><span><c:if test="${bill.isPayment == 1}">未付款</c:if><c:if test="${bill.isPayment == 2}">已付款</c:if></span></td><td><span>${bill.creationDate}</span></td><td><span><a class="viewBill" href="${pageContext.request.contextPath }/billview?code=${bill.billCode}" billid=${bill.id } billcc=${bill.billCode }><img src="${pageContext.request.contextPath }/images/read.png" alt="查看" title="查看"/></a></span><span><a class="modifyBill" href="${pageContext.request.contextPath }/billmodify?code=${bill.billCode}" billid=${bill.id } billcc=${bill.billCode }><img src="${pageContext.request.contextPath }/images/xiugai.png" alt="修改" title="修改"/></a></span><span><a class="deleteBill" href="javascript:deleteBill();" billid=${bill.id } billcc=${bill.billCode }><img src="${pageContext.request.contextPath }/images/schu.png" alt="删除" title="删除"/></a></span></td></tr></c:forEach></table></div>
</section><!--点击删除按钮后弹出的页面-->
<div class="zhezhao"></div>
<div class="remove" id="removeBi"><div class="removerChid"><h2>提示</h2><div class="removeMain"><p>你确定要删除该订单吗?</p><a href="#" id="yes">确定</a><a href="#" id="no">取消</a></div></div>
</div><%@include file="./common/foot.jsp" %>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/billlist.js"></script>

界面就没有上面好看的了,框架自行下载。

供应商页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@page isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@include file="./common/head.jsp"%><div class="right"><div class="location"><strong>你现在所在的位置是:</strong><span>供应商管理页面</span></div><div class="search"><form method="get" action="${pageContext.request.contextPath }/provider.select"><input name="method" value="query" type="hidden"><span>供应商编码:</span><input name="queryProCode" type="text" value="${queryProCode }"><span>供应商名称:</span><input name="queryProName" type="text" value="${queryProName }"><input value="查 询" type="submit" id="searchbutton"><a href="${pageContext.request.contextPath }/jsp/provideradd.jsp">添加供应商</a></form></div><!--供应商操作表格--><table class="providerTable" cellpadding="0" cellspacing="0"><tr class="firstTr"><th width="10%">供应商编码</th><th width="20%">供应商名称</th><th width="10%">联系人</th><th width="10%">联系电话</th><th width="10%">传真</th><th width="10%">创建时间</th><th width="30%">操作</th></tr><c:forEach var="provider" items="${providerList }" varStatus="status"><tr><td><span>${provider.proCode }</span></td><td><span>${provider.proName }</span></td><td><span>${provider.proContact}</span></td><td><span>${provider.proPhone}</span></td><td><span>${provider.proFax}</span></td><td><span>${provider.creationDate}</span></td><td><span><a class="viewProvider" href="${pageContext.request.contextPath }/providerview?code=${provider.proCode}" proid=${provider.id } proname=${provider.proName }><img src="${pageContext.request.contextPath }/images/read.png" alt="查看" title="查看"/></a></span><span><a class="modifyProvider" href="${pageContext.request.contextPath }/provideralter?code=${provider.proCode}" proid=${provider.id } proname=${provider.proName }><img src="${pageContext.request.contextPath }/images/xiugai.png" alt="修改" title="修改"/></a></span><span><a class="deleteProvider" href="javascript:;" proid=${provider.id } proname=${provider.proName }><img src="${pageContext.request.contextPath }/images/schu.png" alt="删除" title="删除"/></a></span></td></tr></c:forEach></table></div>
</section><!--点击删除按钮后弹出的页面-->
<div class="zhezhao"></div>
<div class="remove" id="removeProv"><div class="removerChid"><h2>提示</h2><div class="removeMain" ><p>你确定要删除该供应商吗?</p><a href="#" id="yes">确定</a><a href="#" id="no">取消</a></div></div>
</div><%@include file="./common/foot.jsp" %>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/providerlist.js"></script>

主要是前后端的交互部分,控制器都是由spring容器控制,注意要释放静态资源。

订单后台:

package cms.ssm.controller;import cms.ssm.dao.BillMapper;
import cms.ssm.dao.ProviderMapper;
import cms.ssm.model.Bill;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import java.util.List;@Controller
public class BillController {@Resourceprivate BillMapper billMapper;@Resourceprivate ProviderMapper providerMapper;@GetMapping("/bill")public String showBill(Model model){List<Bill> bills = billMapper.selectAll();List<String> list = providerMapper.selectProviderNames();model.addAttribute("billList",bills);model.addAttribute("providerList",list);return "/jsp/billlist.jsp";}@GetMapping("/billview")public String showOne(@RequestParam("code") String code,Model model){Bill bill = billMapper.selectByCode(code);model.addAttribute("bill",bill);return "/jsp/billview.jsp";}@GetMapping("/billmodify")public String alterBill(@RequestParam("code") String code,Model model){Bill bill = billMapper.selectByCode(code);List<String> list = providerMapper.selectProviderNames();model.addAttribute("bill",bill);model.addAttribute("provider",list);return "/jsp/billmodify.jsp";}@GetMapping(value = "/jsp/bill.do")public String select_more(@RequestParam("method") String method,@RequestParam("queryProductName") String queryProductName,@RequestParam("queryIsPayment") int queryIsPayment,Model model){List<Bill> billList = billMapper.selectMore("%"+queryProductName+"%", queryIsPayment);model.addAttribute("billList",billList);return "/jsp/billlist.jsp";}@GetMapping(value = "/billadd")public String billAdd(Model model){List<String> list = providerMapper.selectProviderNames();model.addAttribute("list",list);return "/jsp/billadd.jsp";}@RequestMapping(value = "/billadd.do", method = RequestMethod.GET)public void billAddColumn(@RequestParam("billCode") String billCode, @RequestParam("productName") String productName, @RequestParam("productCount") Double productCount,@RequestParam("productUnit") String productUnit,@RequestParam("providerId") int providerId){Bill bill =new Bill();bill.setBillCode(billCode);bill.setProductName(productName);bill.setProductCount(productCount);bill.setProductUnit(productUnit);bill.setProviderId(providerId);billMapper.insertOneBill(bill);}
}

供应商后台:

package cms.ssm.controller;import cms.ssm.dao.ProviderMapper;
import cms.ssm.dao.UserMapper;
import cms.ssm.model.Provider;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;
import java.util.List;@Controller
public class ProviderController {@Resourceprivate ProviderMapper providerMapper;//    @Resource
//    private UserMapper userMapper;@GetMapping(value = "/provider")public String showProviders(Model model){List<Provider> list= providerMapper.selectAll();//List<String> roles= userMapper.select_all_role();model.addAttribute("providerList",list);return "jsp/providerlist.jsp";}@GetMapping(value = "/providerview")public String providerView(@RequestParam("code") String code,Model model){Provider provider= providerMapper.selectById(code);model.addAttribute("provider",provider);return "/jsp/providerview.jsp";}@GetMapping(value = "/provideralter")public String providerAlter(@RequestParam("code") String code,Model model){Provider provider= providerMapper.selectById(code);model.addAttribute("provider",provider);return "/jsp/providermodify.jsp";}@GetMapping(value = "/provider.select")public String providerSelect(Model model,@RequestParam("queryProCode") String queryProCode,@RequestParam("queryProName") String queryProName){List<Provider> list = providerMapper.selectMore("%"+queryProCode+"%", "%"+queryProName+"%");model.addAttribute("providerList",list);return "/jsp/providerlist.jsp";}@GetMapping(value = "/provideradd.do")public String providerAdd(@RequestParam("proCode") String proCode,@RequestParam("proName") String proName,@RequestParam("proContact") String proContact,@RequestParam("proPhone") String proPhone,@RequestParam("proAddress") String proAddress,@RequestParam("proFax") String proFax,@RequestParam("proDesc") String proDesc){Provider provider = new Provider();provider.setProCode(proCode);provider.setProName(proName);provider.setProContact(proContact);provider.setProPhone(proPhone);provider.setProAddress(proAddress);provider.setProFax(proFax);provider.setProDesc(proDesc);providerMapper.insertOne(provider);return "/jsp/provideradd.jsp";}@GetMapping(value = "/provider.oparater")@ResponseBodypublic String providerOparater(@RequestParam("proid") int id){providerMapper.delById(id);String delResult = "true";return delResult;}}

仅部分代码共参考


http://chatgpt.dhexx.cn/article/aIpRhuSx.shtml

相关文章

SSM框架开发-基础案例

SSM框架整合基础案例详解 1.数据库环境 创建一个存放书籍数据的数据库表 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books (bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id,bookName VARCHAR(100) NOT NULL COMMENT 书名,bookCou…

SSM框架简单实例

1、SSM框架 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数据源较简单的web项目的框架。 2、简单实例 &#xff08;1&#xff09;项目结构 &#xff08;2&#xff09;PageBean.java packa…

用SSM实现简单实例

SSM的简例实现 这是项目完整代码的链接地址 [https://download.csdn.net/download/m0_46308149/12961224]源码地址 SSM介绍 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、MyBatis两个开源框架整合而成&#xff08;SpringMVC是Spring中的部分内容&am…

SpringMVC笔记——SSM框架搭建简单实例

简介 SpringSpringMVCMyBatis框架&#xff08;SSM&#xff09;是比较热门的中小型企业级项目开发的框架&#xff0c;对于新手来说也是比较容易学习入门的。虽说容易&#xff0c;但在框架搭建过程中仍然遇到了许多问题&#xff0c;因此用实例记录下来吧。 实例 第一步——导包 S…

SSM框架整合+案例

SSM框架整合 1、环境要求2、数据库环境3、基本环境搭建3.1 创建项目3.2 Maven项目添加web支持3.3 配置pom.xml文件3.4 建立框架的基本结构和配置文件3.4.1 创建包3.4.2 添加配置文件3.4.3 database.properties文件3.4.4 mybatis-config.xml 文件3.4.5 applicationContext.xml 文…

C# SqlHelper类的使用

SqlHelper类 1.首先SqlHelper类是一个基于.NET Framework的数据库操作组件&#xff0c;包含了数据库的操作方法。可以简化在C#中使用ADO.NET连接数据库时每次都要编写连接、打开、执行SQL语句的代码&#xff0c;它将每次连接都要写的代码封装成方法&#xff0c;把要执行的SQL语…

SqlHelper类(C#)

大神可以绕道了... 目的&#xff1a;搜集SqlHelper类 自己写的一个SQLHelper类&#xff0c;如下&#xff1a; 编辑App.config节点&#xff0c;添加<connectionStrings>节点&#xff0c;并根据实际填上相应的参数 <?xml version"1.0" encoding"utf…

SQLHelper

前言 小编在最近的学习过程中用到了SQLHelper&#xff0c;说起来&#xff0c;小编也是有点懒&#xff0c;虽然是用到了&#xff0c;但是也没有用明白&#xff0c;开始的时候也没有好好的研究&#xff0c;直到后来报错了&#xff0c;才下定决心好好好学习了解一下这个东西。下面…

sqlhelper 的使用 (C#)超级详细的入门教程

sql helper 的使用 &#xff08;C#&#xff09;小白教程 提到CRUD&#xff0c;很多刚入门的小白总是来一条写一条连接&#xff0c;先建立连接connection 打开连接 open 来查询query 最后别忘了关闭连接 close 。 要是一次写多个操作&#xff0c;那一遍一遍写下来肯定麻木了。…

Python中的BIF

什么是BIF呢&#xff1f; BIF是built-in functions的缩写&#xff0c;顾名思义&#xff0c;就是内建函数。Python中提供了大量的BIF&#xff0c;这就意味着代码量可以大大减少。 如果要查看Python中的内建函数&#xff0c;就可以使用命令&#xff1a;dir(__builtins__) 注意…

一、bif

缩进是python的灵魂&#xff0c;缩进可以使python的代码整洁&#xff0c;有层次。 python是脚本语言&#xff0c;就是为了简单方便以辅助科学运算&#xff0c;因此python有许多bif&#xff0c;build in function 全部都是小写的就是bif。 转义字符是一个字符&#xff0c;在内存…

FineBI

还是数据可视化工具Tableau、FineBI? 不禁联想起在微软系统出现之前&#xff0c;程序员的电脑系统还是用的linux&#xff0c;只能通过各种复杂的指令来实现字符的简单可视化&#xff1b;而当win系统普及于世后&#xff0c;计算机从此突破了技术人群的限制&#xff0c;交互方式…

Python学习笔记2(小甲鱼)—— 内置函数BIF

&#xfeff;&#xfeff; 这里有一个让人“亮瞎眼”的“游戏”开始python的学习。首先我们编写一段代码&#xff0c;来实现这个游戏。编写操作可参考前面的《Python学习笔记1——搭建环境与“Hello World”》这篇文章&#xff0c;网址&#xff1a;http://blog.csdn.net/tongbi…

BSDiff算法

https://blog.csdn.net/add_ada/article/details/51232889 BSDiff是一个差量更新算法&#xff0c;它在服务器端运行BSDiff算法产生patch包&#xff0c;在客户端运行BSPatch算法&#xff0c;将旧文件和patch包合成新文件。 差量更新算法的核心思想 尽可能多的利用old文件中已有…

MFBI

MFBI MFBI: Multi-Frequency Band Indicator 之前在写” Carrier frequency 和 EARFCN的关系”, 提到过MFBI. 简单的讲就是不同band间对应的frequency 的范围之间有overlapping, 一个frequency 可能对应多个band. 比如2595MHz 即属于band38 又属于band41. 关于那些band间存…

Python的内置函数(BIF)与变量的使用

Python的内置函数&#xff08;BIF&#xff09;与变量的使用 1、内置函数 使用dir()可查看所有的内置函数 dir(__builtins__)使用help()可查看内置函数的功能&#xff0c;例如&#xff1a; help(UserWarning)2、input函数 作用是在控制台输入数据&#xff0c;返回的是字符串…

Python内置函数(BIF)查询(附中文详解说明)

我们知道&#xff0c;Python 解释器内置了一些常量和函数&#xff0c;叫做内置常量&#xff08;Built-in Constants&#xff09;和内置函数&#xff08;Built-in Functions&#xff09;&#xff0c;来实现各种不同的特定功能&#xff0c;在我的另外一篇博客中 第8章&#xff1a…

【BF算法】

BF 算法 BF 算法精讲 在学习到字符串的匹配问题时&#xff0c;了解到了BF算法和KMP算法。 对比这两个算法&#xff0c;先了解BF算法&#xff1b; 字符串匹配问题&#xff0c;比如说&#xff1a;有一个主串 “abbbcdef” &#xff0c; 子串 “bbc”&#xff0c;该问题就是在主…

BIF

python3的内置函数

Python中常见BIF及使用方法

前提说明&#xff1a; BIF&#xff1a;(built-in functions)内置函数 目的&#xff1a;为了方便程序员快速的编写程序 1.查看Python内置函数命令&#xff1a; dir(__builtins__) print(dir(__builtins__))结果如下&#xff1a; 2.help查看使用方法 如&#xff1a; hel…