今天上午上了工程数学,课上写完了作业,下午上了毛概
今日代码:
完成上周五老师留的作业,也就是怎么调试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算吧

浙公网安备 33010602011771号