Browse Source

梳理了一下项目结构,编写和测试积分的相关功能(但有bug,不能再jsp页面中显示出来)

superb 2 years ago
parent
commit
401573e46e

+ 6 - 0
WEB-INF/web.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
+         version="4.0">
+</web-app>

+ 26 - 0
src/main/java/com/superb/deliveryapi/controller/PointController.java

@@ -0,0 +1,26 @@
+package com.superb.deliveryapi.controller;
+
+import com.superb.deliveryapi.domain.Point;
+import com.superb.deliveryapi.service.PointService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.util.List;
+
+@Controller
+@RequestMapping("/point")
+public class PointController {
+    @Autowired
+    private PointService pointService;
+
+    @GetMapping("/list")
+    public String list(Model model) {
+        List<Point> points = pointService.getAllPoints();
+        model.addAttribute("points", points);
+        return "points";
+    }
+}
+

+ 15 - 0
src/main/java/com/superb/deliveryapi/dao/PointDAO.java

@@ -0,0 +1,15 @@
+package com.superb.deliveryapi.dao;
+
+
+import com.superb.deliveryapi.domain.Point;
+
+import java.util.List;
+
+public interface PointDAO {
+    void addPoint(Point point);
+    List<Point> getAllPoints();
+    Point getPointById(int pointId);
+    void updatePoint(Point point);
+    void deletePoint(int pointId);
+}
+

+ 59 - 0
src/main/java/com/superb/deliveryapi/dao/PointDAOImpl.java

@@ -0,0 +1,59 @@
+package com.superb.deliveryapi.dao;
+
+import com.superb.deliveryapi.domain.Point;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+@Repository
+public class PointDAOImpl implements PointDAO {
+
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    private static final String INSERT_SQL = "INSERT INTO point (user_id, point, point_time, point_status, point_change) VALUES (?, ?, ?, ?, ?)";
+    private static final String SELECT_ALL_SQL = "SELECT * FROM point";
+    private static final String SELECT_BY_ID_SQL = "SELECT * FROM point WHERE point_id = ?";
+    private static final String UPDATE_SQL = "UPDATE point SET user_id = ?, point = ?, point_time = ?, point_status = ?, point_change = ? WHERE point_id = ?";
+    private static final String DELETE_SQL = "DELETE FROM point WHERE point_id = ?";
+
+    @Override
+    public void addPoint(Point point) {
+        jdbcTemplate.update(INSERT_SQL, point.getUserId(), point.getPoint(), point.getPointTime(), point.getPointStatus(), point.getPointChange());
+    }
+
+    @Override
+    public List<Point> getAllPoints() {
+        return jdbcTemplate.query(SELECT_ALL_SQL, this::mapRowTo);
+    }
+
+    @Override
+    public Point getPointById(int pointId) {
+        return jdbcTemplate.queryForObject(SELECT_BY_ID_SQL, this::mapRowTo, pointId);
+    }
+
+    @Override
+    public void updatePoint(Point point) {
+        jdbcTemplate.update(UPDATE_SQL, point.getUserId(), point.getPoint(), point.getPointTime(), point.getPointStatus(), point.getPointChange(), point.getPointId());
+    }
+
+    @Override
+    public void deletePoint(int pointId) {
+        jdbcTemplate.update(DELETE_SQL, pointId);
+    }
+
+    private Point mapRowTo(ResultSet rs, int rowNum) throws SQLException {
+        Point point = new Point();
+        point.setPointId(rs.getInt("point_id"));
+        point.setUserId(rs.getInt("user_id"));
+        point.setPoint(rs.getInt("point"));
+        point.setPointTime(rs.getTimestamp("point_time").toLocalDateTime());
+        point.setPointStatus(rs.getString("point_status"));
+        point.setPointChange(rs.getInt("point_change"));
+        return point;
+    }
+}

+ 62 - 0
src/main/java/com/superb/deliveryapi/domain/Point.java

@@ -0,0 +1,62 @@
+package com.superb.deliveryapi.domain;
+
+
+import java.time.LocalDateTime;
+
+public class Point {
+    private int userId;
+    private int point;
+    private LocalDateTime pointTime;
+    private int pointId;
+    private String pointStatus;
+    private int pointChange;
+
+    public int getUserId() {
+        return userId;
+    }
+
+    public void setUserId(int userId) {
+        this.userId = userId;
+    }
+
+    public int getPoint() {
+        return point;
+    }
+
+    public void setPoint(int point) {
+        this.point = point;
+    }
+
+    public LocalDateTime getPointTime() {
+        return pointTime;
+    }
+
+    public void setPointTime(LocalDateTime pointTime) {
+        this.pointTime = pointTime;
+    }
+
+    public int getPointId() {
+        return pointId;
+    }
+
+    public void setPointId(int pointId) {
+        this.pointId = pointId;
+    }
+
+    public String getPointStatus() {
+        return pointStatus;
+    }
+
+    public void setPointStatus(String pointStatus) {
+        this.pointStatus = pointStatus;
+    }
+
+    public int getPointChange() {
+        return pointChange;
+    }
+
+    public void setPointChange(int pointChange) {
+        this.pointChange = pointChange;
+    }
+}
+

+ 13 - 0
src/main/java/com/superb/deliveryapi/service/PointService.java

@@ -0,0 +1,13 @@
+package com.superb.deliveryapi.service;
+
+import com.superb.deliveryapi.domain.Point;
+
+import java.util.List;
+
+public interface PointService {
+    void addPoint(Point point);
+    List<Point> getAllPoints();
+    Point getPointById(int pointId);
+    void updatePoint(Point point);
+    void deletePoint(int pointId);
+}

+ 40 - 0
src/main/java/com/superb/deliveryapi/service/PointServiceImpl.java

@@ -0,0 +1,40 @@
+package com.superb.deliveryapi.service;
+
+import com.superb.deliveryapi.dao.PointDAO;
+import com.superb.deliveryapi.domain.Point;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class PointServiceImpl implements PointService {
+
+    @Autowired
+    private PointDAO pointDAO;
+
+    @Override
+    public void addPoint(Point point) {
+        pointDAO.addPoint(point);
+    }
+
+    @Override
+    public List<Point> getAllPoints() {
+        return pointDAO.getAllPoints();
+    }
+
+    @Override
+    public Point getPointById(int pointId) {
+        return pointDAO.getPointById(pointId);
+    }
+
+    @Override
+    public void updatePoint(Point point) {
+        pointDAO.updatePoint(point);
+    }
+
+    @Override
+    public void deletePoint(int pointId) {
+        pointDAO.deletePoint(pointId);
+    }
+}

+ 33 - 0
src/main/webapp/jsp/points.jsp

@@ -0,0 +1,33 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>所有Point列表</title>
+</head>
+<body>
+<h1>所有Point列表</h1>
+<table>
+    <thead>
+    <tr>
+        <th>用户名ID</th>
+        <th>用户积分</th>
+        <th>积分增减时间</th>
+        <th>搜索记录条数ID</th>
+        <th>积分状况</th>
+        <th>积分增减数量</th>
+    </tr>
+    </thead>
+    <tbody>
+    <c:forEach items="${points}" var="point">
+        <tr>
+            <td>${point.getUserId()}</td>
+            <td>${point.getPoint()}</td>
+            <td>${point.getPointTime()}</td>
+            <td>${point.getPointId()}</td>
+            <td>${point.getPointStatus()}</td>
+            <td>${point.getPointChange()}</td>
+        </tr>
+    </c:forEach>
+    </tbody>
+</table>
+</body>
+</html>