1222carnivore  

今天上午上了工程数学,课上写完了作业,下午上了毛概

今日代码:
完成上周五老师留的作业,也就是怎么调试ai使他的代码能很好运行
调试结果如下:
管理员菜单界面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Admin Dashboard</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/antd/4.17.0/antd.min.css">
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f2f5;
            margin: 0;
        }
        .ant-layout-header {
            background: #fff;
            padding: 0 20px;
            display: flex;
            align-items: center;
        }
        .ant-layout-sider {
            background: #001529;
        }
        .ant-menu-dark.ant-menu-inline-collapsed {
            width: 80px;
        }
        .ant-menu-item-selected {
            background: #1890ff !important;
        }
        .ant-breadcrumb {
            margin: 16px 0;
        }
        .site-layout-background {
            background: #fff;
            padding: 24px;
            min-height: 360px;
        }
        .menu-title {
            color: white;
            margin-left: 10px;
        }
    </style>
</head>
<body>
<div id="app"></div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
<script type="text/babel">
    const { Layout, Menu, Breadcrumb, Typography, Form, Input, Button, Modal, message, Table } = antd;
    const { Header, Content, Footer, Sider } = Layout;
    const { Title } = Typography;

    function AdminDashboard() {
        const [collapsed, setCollapsed] = React.useState(false);
        const [visibleAdd, setVisibleAdd] = React.useState(false);
        const [visibleEdit, setVisibleEdit] = React.useState(false);
        const [editRecord, setEditRecord] = React.useState(null);
        const [formAdd] = Form.useForm();
        const [formEdit] = Form.useForm();
        const [warehouses, setWarehouses] = React.useState([]);

        React.useEffect(() => {
            fetch('/getWarehouses')
                .then(response => response.json())
                .then(data => setWarehouses(data))
                .catch(error => console.error('Error fetching warehouses:', error));
        }, []);

        const showAddModal = () => {
            setVisibleAdd(true);
        };

        const handleAddOk = () => {
            formAdd.validateFields()
                .then(values => {
                    fetch('/addWarehouse', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded'
                        },
                        body: Object.keys(values).map(key => encodeURIComponent(key) + '=' + encodeURIComponent(values[key])).join('&')
                    })
                    .then(response => response.text())
                    .then(data => {
                        message.success(data);
                        setVisibleAdd(false);
                        formAdd.resetFields();
                        fetch('/getWarehouses')
                            .then(response => response.json())
                            .then(data => setWarehouses(data))
                            .catch(error => console.error('Error fetching warehouses:', error));
                    })
                    .catch(error => {
                        message.error('Error adding warehouse');
                    });
                })
                .catch(errorInfo => {
                    console.log('Validation Failed:', errorInfo);
                });
        };

        const handleAddCancel = () => {
            setVisibleAdd(false);
        };

        const deleteWarehouse = (warehouseId) => {
            fetch(`/deleteWarehouse?id=${warehouseId}`, {
                method: 'DELETE'
            })
            .then(response => response.text())
            .then(data => {
                message.success(data);
                fetch('/getWarehouses')
                    .then(response => response.json())
                    .then(data => setWarehouses(data))
                    .catch(error => console.error('Error fetching warehouses:', error));
            })
            .catch(error => {
                message.error('Error deleting warehouse');
            });
        };

        const showEditModal = (record) => {
            formEdit.setFieldsValue({
                warehouseCode: record.warehouseCode,
                name: record.name,
                location: record.location,
            });
            setEditRecord(record);
            setVisibleEdit(true);
        };

        const handleEditOk = () => {
            formEdit.validateFields()
                .then(values => {
                    fetch(`/updateWarehouse?id=${editRecord.warehouseId}`, {
                        method: 'PUT',
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded'
                        },
                        body: Object.keys(values).map(key => encodeURIComponent(key) + '=' + encodeURIComponent(values[key])).join('&')
                    })
                    .then(response => response.text())
                    .then(data => {
                        message.success(data);
                        setVisibleEdit(false);
                        formEdit.resetFields();
                        fetch('/getWarehouses')
                            .then(response => response.json())
                            .then(data => setWarehouses(data))
                            .catch(error => console.error('Error fetching warehouses:', error));
                    })
                    .catch(error => {
                        message.error('Error updating warehouse');
                    });
                })
                .catch(errorInfo => {
                    console.log('Validation Failed:', errorInfo);
                });
        };

        const handleEditCancel = () => {
            setVisibleEdit(false);
        };

        const columns = [
            {
                title: 'ID',
                dataIndex: 'warehouseId',
                key: 'warehouseId',
            },
            {
                title: 'Code',
                dataIndex: 'warehouseCode',
                key: 'warehouseCode',
            },
            {
                title: 'Name',
                dataIndex: 'name',
                key: 'name',
            },
            {
                title: 'Location',
                dataIndex: 'location',
                key: 'location',
            },
            {
                title: 'Action',
                key: 'action',
                render: (text, record) => (
                    <>
                        <Button type="primary" onClick={() => showEditModal(record)} style={{ marginRight: 8 }}>Edit</Button>
                        <Button type="danger" onClick={() => deleteWarehouse(record.warehouseId)}>Delete</Button>
                    </>
                ),
            },
        ];

        return (
            <Layout style={{ minHeight: '100vh' }}>
                <Sider collapsible collapsed={collapsed} onCollapse={() => setCollapsed(!collapsed)}>
                    <div className="logo">
                        <span className="menu-title">WMS</span>
                    </div>
                    <Menu theme="dark" defaultSelectedKeys={['1']} mode="inline">
                        <Menu.Item key="1">
                            <i className="fas fa-home"></i>
                            <span>Dashboard</span>
                        </Menu.Item>
                        <Menu.Item key="2">
                            <i className="fas fa-building"></i>
                            <span>Warehouses</span>
                        </Menu.Item>
                        <Menu.Item key="3">
                            <i className="fas fa-boxes"></i>
                            <span>Materials</span>
                        </Menu.Item>
                    </Menu>
                </Sider>
                <Layout>
                    <Header style={{ background: '#fff', padding: 0 }} />
                    <Content style={{ margin: '0 16px' }}>
                        <Breadcrumb style={{ margin: '16px 0' }}>
                            <Breadcrumb.Item>User</Breadcrumb.Item>
                            <Breadcrumb.Item>Bill</Breadcrumb.Item>
                        </Breadcrumb>
                        <div className="site-layout-background" style={{ padding: 24, minHeight: 360 }}>
                            <Title level={2}>Admin Dashboard</Title>
                            <Button type="primary" onClick={showAddModal}>
                                Add Warehouse
                            </Button>
                            <Table dataSource={warehouses} columns={columns} rowKey="warehouseId" />
                            <Modal title="Add New Warehouse" visible={visibleAdd} onOk={handleAddOk} onCancel={handleAddCancel}>
                                <Form form={formAdd} layout="vertical">
                                    <Form.Item label="Warehouse Code" name="warehouseCode" rules={[{ required: true, message: 'Please input warehouse code!' }]}>
                                        <Input />
                                    </Form.Item>
                                    <Form.Item label="Name" name="name" rules={[{ required: true, message: 'Please input warehouse name!' }]}>
                                        <Input />
                                    </Form.Item>
                                    <Form.Item label="Location" name="location" rules={[{ required: true, message: 'Please input warehouse location!' }]}>
                                        <Input />
                                    </Form.Item>
                                </Form>
                            </Modal>
                            <Modal title="Edit Warehouse" visible={visibleEdit} onOk={handleEditOk} onCancel={handleEditCancel}>
                                <Form form={formEdit} layout="vertical">
                                    <Form.Item label="Warehouse Code" name="warehouseCode" rules={[{ required: true, message: 'Please input warehouse code!' }]}>
                                        <Input />
                                    </Form.Item>
                                    <Form.Item label="Name" name="name" rules={[{ required: true, message: 'Please input warehouse name!' }]}>
                                        <Input />
                                    </Form.Item>
                                    <Form.Item label="Location" name="location" rules={[{ required: true, message: 'Please input warehouse location!' }]}>
                                        <Input />
                                    </Form.Item>
                                </Form>
                            </Modal>
                        </div>
                    </Content>
                    <Footer style={{ textAlign: 'center' }}>Ant Design ©2023 Created by Ant UED</Footer>
                </Layout>
            </Layout>
        );
    }

    ReactDOM.render(<AdminDashboard />, document.getElementById('app'));
</script>
</body>
</html>

管理员连接仓库数据:

package com.warehouse.controller;

import com.warehouse.dao.WarehouseDAO;
import com.warehouse.model.Warehouse;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/updateWarehouse")
public class UpdateWarehouseController extends HttpServlet {
    private WarehouseDAO warehouseDAO = new WarehouseDAO();

    @Override
    protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String idStr = request.getParameter("id");
        if (idStr != null && !idStr.isEmpty()) {
            int warehouseId = Integer.parseInt(idStr);
            String warehouseCode = request.getParameter("warehouseCode");
            String name = request.getParameter("name");
            String location = request.getParameter("location");

            Warehouse warehouse = new Warehouse(warehouseCode, name, location);
            warehouse.setWarehouseId(warehouseId);

            boolean success = warehouseDAO.updateWarehouse(warehouse);
            if (success) {
                response.getWriter().write("Warehouse updated successfully!");
            } else {
                response.getWriter().write("Failed to update warehouse.");
            }
        } else {
            response.getWriter().write("Invalid warehouse ID.");
        }
    }
}

完成增删改查等基本操作:

package com.warehouse.dao;

import com.warehouse.model.Warehouse;
import com.warehouse.util.DBUtil;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class WarehouseDAO {

    public boolean addWarehouse(Warehouse warehouse) {
        String sql = "INSERT INTO Warehouse (warehouse_code, name, location) VALUES (?, ?, ?)";
        try (Connection conn = DBUtil.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setString(1, warehouse.getWarehouseCode());
            pstmt.setString(2, warehouse.getName());
            pstmt.setString(3, warehouse.getLocation());
            int rowsAffected = pstmt.executeUpdate();
            return rowsAffected > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public boolean deleteWarehouse(int warehouseId) {
        String sql = "DELETE FROM Warehouse WHERE warehouse_id = ?";
        try (Connection conn = DBUtil.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setInt(1, warehouseId);
            int rowsAffected = pstmt.executeUpdate();
            return rowsAffected > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public boolean updateWarehouse(Warehouse warehouse) {
        String sql = "UPDATE Warehouse SET warehouse_code = ?, name = ?, location = ? WHERE warehouse_id = ?";
        try (Connection conn = DBUtil.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setString(1, warehouse.getWarehouseCode());
            pstmt.setString(2, warehouse.getName());
            pstmt.setString(3, warehouse.getLocation());
            pstmt.setInt(4, warehouse.getWarehouseId());
            int rowsAffected = pstmt.executeUpdate();
            return rowsAffected > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public List<Warehouse> getAllWarehouses() {
        String sql = "SELECT * FROM Warehouse";
        List<Warehouse> warehouses = new ArrayList<>();
        try (Connection conn = DBUtil.getConnection();
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql)) {
            while (rs.next()) {
                Warehouse warehouse = new Warehouse(
                        rs.getString("warehouse_code"),
                        rs.getString("name"),
                        rs.getString("location")
                );
                warehouse.setWarehouseId(rs.getInt("warehouse_id"));
                warehouses.add(warehouse);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return warehouses;
    }
}

可以看到ai写的代码都是用了肥肠复杂的变量名,导致代码不是那么好看,而且我用的ai还是不能十分智能地理解我的代码问题,这是我发现的ai的一些弊端
不知道为什么运行还是有点问题,明天解决

今日代码量:主要是改的多,按50算吧

posted on 2025-03-04 19:27  作业-----  阅读(9)  评论(0)    收藏  举报