当前位置:   article > 正文

一个简单的SSM增删改查商品和订单系统_ssm拿到商品的值

ssm拿到商品的值

一个简单的ssm系统,作为这周课程设计的作业,也大概明白了ssm的基本结构,希望能帮助刚接触ssm框架的同学。我所用的是Mysql数据库。

描述:
顾客:登录,新增订单,查询所有商品
管理员:查询所有商品,修改商品信息,新增商品,删除商品。
效果展示:
登录界面:
在这里插入图片描述
用户登录界面:
在这里插入图片描述
购买界面
在这里插入图片描述
在这里插入图片描述
管理员登录:
新增商品
在这里插入图片描述
以及修改商品
在这里插入图片描述
一、目录结构:
在这里插入图片描述
二、配置文件
applicationContext.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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
	<!-- 指定需要扫描的包,注解生效 -->
	<context:component-scan base-package="com.dao" />
	<context:component-scan base-package="com.controller" />
	<context:component-scan base-package="com.service" />
	<!-- 扫描数据池 -->
	<context:property-placeholder
		location="classpath:jdbc_mysql.properties" ignore-resource-not-found="false" local-override="false"  />
	<!-- 配置数据源 -->
		<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
		<!-- Mysql数据库驱动 -->
		<property name="driverClassName" value="${jdbc.driver}" />
		<!-- URL -->
		<property name="url" value="${jdbc.url}" />
		<!-- Username -->
		<property name="username" value="${jdbc.username}" />
		<!-- password -->
		<property name="password" value="${jdbc.password}" />
		<!-- 最大链接数 -->
		<property name="maxTotal" value="30" />
		<!-- 最大空闲链接数 -->
		<property name="maxIdle" value="10" />
		<!-- 初始化连接数 -->
		<property name="initialSize" value="5" />
		</bean>

	<!-- 为数据源添加事物管理器 -->
	<bean id="txManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 开启事物注解 -->
	<tx:annotation-driven transaction-manager="txManager"/>
	
	<!-- 配置Mybatis工厂,同时指定数据源,并与Mybatis完美整合 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!--configLocation 的属性值为 MyBatis 的核心配置文件  -->
		<property name="configLocation" value="classpath:com/mybatis/mybatis-config.xml" />
	</bean>
	
	<!-- Mapper 代理开发,使用 Spring 自动扫描 MyBatis的接口并装配
	(Spring 将指定包中所有被@Mapper 注解标注的接口自动装配为 MyBatis 的映射接口 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- mybatis-spring组件的扫描器 -->
		<property name="basePackage" value="com.dao" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>
	<context:component-scan base-package="com.service"></context:component-scan>
</beans>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

数据库连接文件
jdbc_mysql.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localHost:3306/test?characterEncoding=utf8&serverTimezone=UTC
jdbc.username=root
jdbc.password=129869
  • 1
  • 2
  • 3
  • 4

日志文件
log4j.properties


### Global logging configuration
log4j.rootLogger=ERROR, stdout

### Uncomment for MyBatis logging
log4j.logger.org.apache.ibatis=ERROR

### Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

springmvc-servlet.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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
	<!-- 使用扫描机制扫描控制器类,控制器类都在 controller 包及其子包下 -->
	<context:component-scan base-package="com.controller" />
	<mvc:annotation-driven />
	<!-- annotation-driven 用于简化开发的配置, 注解 DefaultAnnotationHandlerMapping AnnotationMethodHandlerAdapter -->
	<!-- 允许css目录下的所有文件可见 -->
	<mvc:resources location="/css/" mapping="/css/**" />
	<!-- html -->
	<mvc:resources location="/html/" mapping="/html/**" />
	<mvc:resources location="/jsp/" mapping="/jsp/**" />
	<mvc:resources location="/js/" mapping="/js/**" />
	<mvc:resources location="/images/" mapping="/images/**" />
	<mvc:resources location="/fonts/" mapping="/fonts/**" />
	<!-- 配置视图解析器ViewResolver -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		id="internalResourceViewResolver">
		<!-- 前缀 -->
		<property name="prefix" value="/WEB-INF/jsp/" />
		<!-- 后缀 -->
		<property name="suffix" value=".jsp"></property>
	</bean>

</beans>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>ChooseEachother</display-name>
  <welcome-file-list>
    <welcome-file>Login.html</welcome-file>
    <welcome-file>Login.htm</welcome-file>
    <welcome-file>Login.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  	<!-- 实例化容器 -->
  	<context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>
  	classpath:applicationContext.xml
  	</param-value>
  	</context-param>
  	
  	<listener>
  	<listener-class>
  	org.springframework.web.context.ContextLoaderListener
  	</listener-class>
  	</listener>
	<!-- 部署DispatcherServlet -->
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 表示容器在启动时立即加载servlet -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<!-- 处理所有url -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!-- 避免乱码 -->
	 <filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
 </filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
</web-app>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

三、控制类
对于这个系统有两个表,也有两个控制类
GoodsController.java

package com.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.po.Goods;
import com.service.GoodsService;

@Controller("goodsController")
@RequestMapping("/goods")
public class GoodsController {
	@Autowired
	private GoodsService goodsService;
	//管理员登录
	@RequestMapping("/adminlogin")
	public String AdminLogin(Model model) {
		return "manageAllGoods";
	}
	// 顾客登录
	@RequestMapping("/login")
	public String Login(String account, String password, Model model) {
		if ("jyq".equals(account) &&  "123456".equals(password)||"rezheaiba".equals(account) && "123456".equals(password)) {
			model.addAttribute("account", account);
			model.addAttribute("password", password);
			return "redirect:/goods/selectAllGoods";
		}else {
			model.addAttribute("massage", "用户名或密码错误!您可以先浏览以下商品!");
			return "selectAllGoods";
		}
	}

	// 显示所有商品,顾客用
	@RequestMapping("/selectAllGoods")
	public String selectAllGoods(Model model) {
		List<Goods> allGoods = goodsService.selectAllGoods();
		model.addAttribute("allGoods", allGoods);
		return "selectAllGoods";
	}
	
	//管理所有商品,管理员用
	@RequestMapping("/manageAllGoods")
	public String manageAllGoods(Model model) {
		List<Goods> allGoods = goodsService.selectAllGoods();
		model.addAttribute("allGoods", allGoods);
		return "manageAllGoods";
		}
	
	//管理员删除商品
	@RequestMapping("/deleteGoods")
	public String deleteGoods(int goodsId) {
		goodsService.deleteGoods(goodsId);
		return "redirect:/goods/manageAllGoods";
		}
	
	//管理员添加商品信息
	@RequestMapping("/insertGoods")
	public String insertGoods(String goodsname,String goodsprice) {
		Goods goods = new Goods(goodsname,Double.parseDouble(goodsprice));
		goodsService.insertGoods(goods);
		return "redirect:/goods/manageAllGoods";
	}
	
	//跳转到修改商品信息页面
	@RequestMapping("/infoGoods")
	public String infoGoods(int goodsId,Model model) {
		model.addAttribute("gid", goodsId);
		return "updateGoods";
		}
	
	//管理员修改商品
		@RequestMapping("/updateGoods")
		public String updateGoods(String gid,String gsname,String price ) {
			Goods goods = new Goods(gsname,Double.parseDouble(price));
			goods.setGoodsId(Integer.parseInt(gid));
			goodsService.updateGoods(goods);
			return "redirect:/goods/manageAllGoods";
			}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83

OrdersController.java

package com.controller;


import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.po.Orders;
import com.service.OrdersService;

@Controller("ordersController")
@RequestMapping("/orders")
public class OrdersController {
	@Autowired
	private OrdersService ordersService;
	
	//跳转至购买页面,去填写个人信息
	@RequestMapping("/buyGoods")
	public String buyGoods(String gname, Model model) {
		model.addAttribute("gname", gname);
		return "BuyGoods";
	}
	
	@RequestMapping("/selectAllOrders")
	public String selectAllOrders(Model model) {
		List<Orders> orders =  ordersService.selectAllOrders();
		model.addAttribute("myorders", orders);
		return "myOrders";
	}
	//insert订单
	@RequestMapping("/myOrders")
	public String myOrders(String gname,String inputName,String inputPhoneNumber,String inputAddress) {
		int max=10000,min=1;
		int ordernumber = (int) (Math.random()*(max-min)+min); 
		Orders orders = new Orders(inputName,Integer.parseInt(inputPhoneNumber),gname,inputAddress,ordernumber,new Date());
		ordersService.insertOrders(orders);
		return "redirect:/orders/selectAllOrders";
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

其他文件懒得粘贴了,有需要的可自行获取
https://download.csdn.net/download/weixin_45095712/12598411
https://github.com/rezheaiba/rzab

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/341242
推荐阅读
相关标签