SSH框架网上商城项目第6战之基于DataGrid的数据显示

SSH框架网上商城项目第6战之基于DataGrid的数据显示攻略

  1. 前言

DataGrid是EasyUI中极常用的组件之一,提供了方便、美观、易用的表格展示方式,因此在实际Web开发中也具有广泛的应用。

本文将向大家介绍如何基于SSH框架实现基于DataGrid的数据显示。

  1. 准备工作

在开始之前,需要准备以下内容:

  • Eclipse IDE
  • JDK 1.8
  • Tomcat 9服务器
  • MySQL数据库

  • 实现步骤

(1)新建maven项目并创建相关目录
首先,我们需要在Eclipse中新建一个Maven项目,并创建相关目录。

(2)导入项目所需要的依赖
在pom.xml文件中,添加以下三个依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.10</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>5.3.10</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

(3)创建数据库连接
在src/main/resources目录下,创建名为jdbc.properties的文件,添加以下代码:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_name?useSSL=false
jdbc.username=root
jdbc.password=123456

(其中,db_name为你所使用的数据库名称;root为数据库用户名;123456为数据库用户密码)

(4)创建表
在MySQL数据库中创建一个名为goods_info的表,表结构如下:

 CREATE TABLE `goods_info` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `name` varchar(255) DEFAULT NULL,
   `price` double DEFAULT NULL,
   `stock` int(11) DEFAULT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

(5)编写model类

在项目中创建com.example.shop.entity包,在该包下创建Goods实体类,代码如下:

package com.example.shop.entity;

public class Goods {

    private int id;
    private String name;
    private double price;
    private int stock;

    // getter和setter方法省略
}

(6)编写DAO层接口和SQL语句

在项目中创建com.example.shop.dao包,在该包下创建GoodsDao接口,定义以下方法:

package com.example.shop.dao;

import java.util.List;

import com.example.shop.entity.Goods;

public interface GoodsDao {

    public List<Goods> listAllGoods();
}

并在src/main/resources/mappings目录下创建GoodsDao.xml文件,编写SQL语句:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.shop.dao.GoodsDao">

    <resultMap id="goodsMap" type="com.example.shop.entity.Goods">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="price" column="price" />
        <result property="stock" column="stock" />
    </resultMap>

    <select id="listAllGoods" resultMap="goodsMap">
        select * from goods_info
    </select>

</mapper>

(7)编写Service层接口和实现类
在项目中创建com.example.shop.service包,在该包下创建GoodsService接口,定义以下方法:

package com.example.shop.service;

import java.util.List;

import com.example.shop.entity.Goods;

public interface GoodsService {

    public List<Goods> listAllGoods();
}

并在src/main/java/com/example/shop/service/impl包下创建GoodsServiceImpl实现类,实现GoodsService接口方法:

package com.example.shop.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.example.shop.dao.GoodsDao;
import com.example.shop.entity.Goods;
import com.example.shop.service.GoodsService;

@Service
@Transactional
public class GoodsServiceImpl implements GoodsService {

    @Autowired
    private GoodsDao goodsDao;

    @Override
    public List<Goods> listAllGoods() {
        return goodsDao.listAllGoods();
    }
}

(8)编写Controller层类
在项目中创建com.example.shop.controller包,在该包下创建GoodsController类,代码如下:

package com.example.shop.controller;

import java.util.List;

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.ResponseBody;

import com.example.shop.entity.Goods;
import com.example.shop.service.GoodsService;

@Controller
@RequestMapping("/goods")
public class GoodsController {

    @Autowired
    private GoodsService goodsService;

    @RequestMapping("/list")
    @ResponseBody
    public List<Goods> listAll() {
        return goodsService.listAllGoods();
    }
}

(9)创建jsp页面
在WebContent目录下,创建WEB-INF/views目录,创建名为list.jsp的jsp页面,代码如下:

<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>商品列表</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/bootstrap/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
</head>
<body>
    <table id="dg" title="商品列表" class="easyui-datagrid" style="width:100%">
        <thead>
            <tr>
                <th field="id" width="50" sortable="true">编号</th>
                <th field="name" width="50" sortable="true">名称</th>
                <th field="price" width="50" sortable="true">价格</th>
                <th field="stock" width="50" sortable="true">库存</th>
            </tr>
        </thead>
    </table>
    <script type="text/javascript">
        $(function(){
            $('#dg').datagrid({
                url:'${pageContext.request.contextPath}/goods/list',
                columns:[[
                    {field:'id',title:'编号',width:50},
                    {field:'name',title:'名称',width:50},
                    {field:'price',title:'价格',width:50},
                    {field:'stock',title:'库存',width:50},
                ]],
                pagination:true,
                rownumbers:true,
                singleSelect:true,
                striped:true
            });
        });
    </script>
</body>
</html>
  1. 示例说明

下面以两个示例说明本文的实现方法:

(1)在MySQL数据库中插入一些数据
在MySQL数据库中插入以下数据:

insert into goods_info(name,price,stock) values('iPhone X',7999.00,10);
insert into goods_info(name,price,stock) values('MacBook Pro',14999.00,5);
insert into goods_info(name,price,stock) values('iPad Pro',7099.00,8);

(2)访问jsp页面
在Tomcat服务器中启动项目,并访问以下URL:

http://localhost:8080/shop/list.jsp

可以看到在页面中正确显示了从MySQL数据库中读取的商品信息。

  1. 总结

本文介绍了基于SSH框架实现基于DataGrid的数据显示的具体步骤,包括了Maven项目搭建、数据库连接配置、Dao层、Service层、Controller层的编写,并提供了具体的示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SSH框架网上商城项目第6战之基于DataGrid的数据显示 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • Java 数组交集的实现代码

    下面是Java数组交集的实现代码完整攻略。 实现思路 交集是指两个集合中都存在的元素,可以用两种方法来实现数组交集。 嵌套循环:在第一个数组中循环遍历每个元素,在第二个数组中再循环遍历每个元素,如果两个元素相等,则为交集元素之一。 HashSet数据结构:使用HashSet将第一个数组中的元素都添加进去,然后遍历第二个数组,在HashSet中查找是否存在相同…

    Java 2023年5月26日
    00
  • Spring Boot 中starter的原理详析

    Spring Boot 中 Starter 的原理详析 在 Spring Boot 中,Starter 是一种特殊的依赖,它可以帮助开发人员快速地集成和配置一组相关的依赖。在本文中,我们将深入探讨 Spring Boot 中 Starter 的原理。 Starter 的基本概念 在 Spring Boot 中,Starter 是一种特殊的依赖,它可以帮助开发…

    Java 2023年5月15日
    00
  • JavaMail入门教程之解析邮件(5)

    JavaMail入门教程之解析邮件(5) 在这篇教程中,我们将学习如何使用JavaMail解析邮件内容。JavaMail提供了多种解析邮件内容的方法。我们将介绍以下三种方法: 使用getContentType()获取邮件的内容类型,并根据邮件的类型进行解析; 使用getContent()获取邮件的内容,并根据邮件类型进行解析; 使用MimeMessagePa…

    Java 2023年6月15日
    00
  • 用Java实现简单ATM机功能

    下面是用Java实现简单ATM机功能的完整攻略: 1. 需求分析 在实现ATM机功能前,我们首先需要对需求进行分析。 根据通常的ATM操作流程,我们可以将以下主要功能列出: 查询余额 取款 存款 转账 2. 设计思路 在完成需求分析后,我们需要进行设计思路。 我们需要为ATM机设计一个系统,包含以下实体: 用户 银行账号 ATM机 我们可以通过面向对象的方式…

    Java 2023年5月19日
    00
  • Java GUI编程实现在线聊天室

    Java GUI编程实现在线聊天室攻略 背景介绍 随着互联网的发展,人们越来越需要进行线上交流。在线聊天室应运而生,成为了人们日常交流的重要工具之一。本文介绍如何利用Java GUI编程实现一个简单的在线聊天室。 实现步骤 1. 创建GUI界面 使用Java Swing技术创建GUI界面,包括登录界面和聊天界面。其中登录界面包括用户名和密码输入框,登录按钮,…

    Java 2023年5月24日
    00
  • java1.8安装及环境变量配置教程

    Java 1.8安装及环境变量配置教程 Java 1.8是一种高级编程语言,适用于创建跨平台应用程序。为了在计算机上运行Java程序,需要安装Java Development Kit(JDK)并配置环境变量。本文提供了Java 1.8安装及环境变量配置的完整攻略。 步骤一:下载Java Development Kit 访问Oracle官方网站(https:/…

    Java 2023年5月24日
    00
  • EL表达式的隐式对象_动力节点Java学院整理

    EL表达式的隐式对象是指在JSP页面中可以直接使用的一些对象,不需要通过Scriptlet或JSTL等语法进行声明或使用。EL表达式的隐式对象包括以下几种: pageScope:该隐式对象表示一个HashMap,在JSP页面中通过El表达式可以访问该HashMap中的值。 示例: <% pageContext.setAttribute("na…

    Java 2023年6月15日
    00
  • 分享Java性能调优的11个实用技巧

    首先,我们需要明确一下Java性能调优的目标:提高应用程序的处理能力、降低资源占用率、提高用户体验和稳定性。为达成此目标,我们可以使用以下11个实用技巧: 1.使用最新的JDK版本 尽可能地使用最新的JDK版本,因为它们通常具有更好的性能和更高效的垃圾回收器。 2.使用本地变量 使用本地变量可以减少对垃圾回收器的压力,因此可以提高性能。例如,可以将对象引用存…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部