[graduation project] design and implementation of SSM second-hand trading website based on jsp+mysql+Spring+mybatis

Posted by wiseone on Sun, 30 Jan 2022 08:55:27 +0100

You know how to go to the town building map first

1, Introduction 2

1.1 research background 2

1.2 research purpose and Significance 2

1.3 research contents 3

1.4 feasibility study design 3

1.5 social feasibility 4

1.6 relevant technical description 4

spring 4

SpringĀ 5

jQuery 5

Mysql 6

1) Powerful 6

2) Support cross platform 6

3) Fast running speed 6

4) Support object-oriented 7

5) High security 7

6) Low cost 7

7) Support various development languages 7

8) Large database storage capacity 7

9) Support powerful built-in functions 7

2, Demand analysis 8

2.1 system function overview 8

1) User registration and login function 8

2) User information management 8

3) Operation of user's second-hand items 8

4) User shopping cart management 8

5) User order management operation management 8

6) Management, addition, modification and deletion of idle item types 8

7) Preview and view of web products 8

8) Logout logout 8

2.2 system operation environment 8

3, System design 9

3.1 system design 9

3.1.1 main design of client 9

3.4 main process description 9

4, System implementation 11

4.1 main categories of procedures 11

4.1.1 user administrator 11

4.1.4 classification of second-hand goods 12

4.1.4 orders for second-hand goods 12

4.1.4 orders for second-hand goods 13

4.1.4 details of second-hand goods 14

4.1.4 users and customers 15

4.3 screenshot of main modules of system function 16

4.3.1 landing page 16

4.3.1 login front end code: 16

4.3.2 registration page: 17

4.3.2 system function screenshot 17

4.3.4 display of some key source codes: 22

4.4 database table design 29

4.4.0 three data paradigms: 29

1, First paradigm 29

2, Second paradigm 29

3, The third paradigm 29

4.4.1 table ER figure 30

4.4.2 user table design 30

4.4.3 design of second-hand goods classification table 30

4.4.4 user order form design 31

4.4.5 detailed design of second-hand goods list 31

4.4.5 design of second-hand goods order form 32

4.4.6 database sql file 32

5, Reference contribution 36

Main functions:

Administrator: commodity classification management, commodity management, commodity order management, user management and other functions.
User role: view all goods, log in and register, view goods by category, publish goods, view the seller's home page, contact the seller, leave a message for goods, view orders, modify and view personal data.

Main technologies:

HTML+CSS+JavaScript+jsp+mysql+Spring+mybatis

System home page:

Login module:

Login code implementation:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>System login - Supermarket order management system</title>
    <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/style.css" />
    <script type="text/javascript">
	/* if(top.location!=self.location){
	      top.location=self.location;
	 } */
    </script>
</head>
<body class="login_bg">
    <section class="loginBox">
        <header class="loginHeader">
            <h1>Second hand trading platform</h1>
        </header>
        <section class="loginCont">
	        <form class="loginForm" action="${pageContext.request.contextPath }/login.do"  name="actionForm" id="actionForm"  method="post" >
				<div class="info">${error }</div>
				<div class="inputbox">
                    <label for="user">user name:</label>
					<input type="text" class="input-text" id="userCode" name="userCode" placeholder="enter one user name" required/>
				</div>	
				<div class="inputbox">
                    <label for="mima">password:</label>
                    <input type="password" id="userPassword" name="userPassword" placeholder="Please input a password" required/>
                </div>	
				<div class="subBtn">
					
                    <input type="submit" value="Sign in"/>
                    <input type="reset" value="Reset"/>
                </div>	
			</form>
        </section>
    </section>
</body>
</html>

Product details:

Click purchase to create an order information:

Personal Center:

Administrator login:

Main code implementation:

/**
 * .
 *
 *
 *
 *
 */

package io.renren.modules.sys.controller;


import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import io.renren.common.utils.R;
import io.renren.modules.sys.shiro.ShiroUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;

/**
 * Login related
 *
 * @author Mark s.com
 */
@Controller
public class SysLoginController {
	@Autowired
	private Producer producer;
	
	@RequestMapping("captcha.jpg")
	public void captcha(HttpServletResponse response)throws IOException {
        response.setHeader("Cache-Control", "no-store, no-cache");
        response.setContentType("image/jpeg");

        //Generate text verification code
        String text = producer.createText();
        //Generate picture verification code
        BufferedImage image = producer.createImage(text);
        //Save to shiro session
        ShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);
        
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(image, "jpg", out);
	}
	
	/**
	 * Sign in
	 */
	@ResponseBody
	@RequestMapping(value = "/sys/login", method = RequestMethod.POST)
	public R login(String username, String password, String captcha) {
		String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);
		if(!captcha.equalsIgnoreCase(kaptcha)){
			return R.error("Incorrect verification code");
		}
		try{
			Subject subject = ShiroUtils.getSubject();
			UsernamePasswordToken token = new UsernamePasswordToken(username, password);//md5+Jiayan
			subject.login(token);
		}catch (UnknownAccountException e) {
			return R.error(e.getMessage());
		}catch (IncorrectCredentialsException e) {
			return R.error("Incorrect account or password");
		}catch (LockedAccountException e) {
			return R.error("Account has been locked,Please contact the administrator");
		}catch (AuthenticationException e) {
			return R.error("Account verification failed");
		}
	    
		return R.ok();
	}
	
	/**
	 * sign out
	 */
	@RequestMapping(value = "logout", method = RequestMethod.GET)
	public String logout() {
		ShiroUtils.logout();
		return "redirect:login.html";
	}
	
}

Main functions of administrator:

Classification management:

Commodity management:

Order management:

User management;

Main table design:

User table:

CREATE TABLE `NewTable` (
`user_id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`username`  varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'user name' ,
`password`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'password' ,
`salt`  varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'salt' ,
`email`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'mailbox' ,
`mobile`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'cell-phone number' ,
`status`  tinyint(4) NULL DEFAULT NULL COMMENT 'Status 0: Disabled 1: normal' ,
`create_time`  datetime NULL DEFAULT NULL COMMENT 'Creation time' ,
PRIMARY KEY (`user_id`),
UNIQUE INDEX `username` (`username`) USING BTREE 
)

Order form:

CREATE TABLE `NewTable` (
`order_id`  bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Order table PK id' ,
`order_no`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'order number' ,
`user_id`  bigint(20) NOT NULL DEFAULT 0 COMMENT 'User primary key id' ,
`total_price`  int(11) NOT NULL DEFAULT 1 COMMENT 'Total order price' ,
`pay_status`  bigint(20) NOT NULL DEFAULT 0 COMMENT 'Payment status:0.Unpaid,1.Payment successful,-1:Payment failure' , ,
`pay_time`  datetime NULL DEFAULT NULL COMMENT 'Payment time' ,
`order_status`  bigint(20) NOT NULL DEFAULT 0 COMMENT 'Order status:0.To be paid 1.Paid 2.Distribution completed 3:Issue succeeded 4.Successful trade -1.Manual shutdown -2.Timeout shutdown -3.Merchant closure' ,
`extra_info`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'order body' ,
`user_name`  varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'Consignee Name ' ,
`user_phone`  varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'Consignee mobile number' ,
`user_address`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'Consignee receiving address' ,
PRIMARY KEY (`order_id`)
)

Commodity list:

CREATE TABLE `NewTable` (
`goods_id`  bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Commodity table primary key id' ,
`goods_name`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'Trade name' ,
`goods_intro`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'Product introduction' ,
`goods_category_id`  bigint(20) NOT NULL DEFAULT 0 COMMENT 'Association classification id' ,
`goods_cover_img`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '/admin/dist/img/no-img.png' COMMENT 'Commodity master map' ,
`goods_detail_content`  text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'Product details' ,
`original_price`  int(11) NOT NULL DEFAULT 1 COMMENT 'commodity price' ,
`selling_price`  int(11) NOT NULL DEFAULT 1 COMMENT 'Actual selling price of goods' ,

`tag`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'Commodity label' ,
`goods_sell_status`  tinyint(4) NOT NULL DEFAULT 0 COMMENT 'Product on shelf status 0-Off shelf 1-Put on the shelf' ,
`create_user`  int(11) NOT NULL DEFAULT 0 COMMENT 'Adder primary key id' ,
PRIMARY KEY (`goods_id`)
)

Recommendations for design and implementation of relevant systems:

Design and implementation of front and back office of film ticketing website management system based on java springboot+mybatis

Design and implementation of spring boot + mybatis winery internal management system based on Java SSM

Design and implementation of smart life sharing platform based on JAVA springboot+mybatis

Design and implementation of epidemic prevention platform based on JAVA springboot+VUE

Design and implementation of furniture mall platform based on Java springboot+vue+redis

See more bloggers' homepage and more practical projects > > >

Well, that's all for today. Let's praise, collect and comment. Let's start three times with one button. See you next time~~

Topics: Java JQuery Mybatis Spring