KeyError KeyError: 'submit_time'
时间: 2024-01-22 07:03:57 浏览: 111
`KeyError` 表示在一个字典中,没有找到指定的键。在你的代码中,你可能在尝试访问字典的 `submit_time` 键时出现了这个错误。
这可能是因为你的字典中没有 `submit_time` 这个键,或者你的代码中可能有一些逻辑错误导致字典中的 `submit_time` 键没有被正确地设置。
你可以检查一下你的代码,确保字典中存在 `submit_time` 键,并且在访问它之前进行正确的设置。如果仍然存在问题,请考虑在代码中添加适当的异常处理逻辑,以便在出现 `KeyError` 错误时能够进行处理。
相关问题
KeyError: 'submit_time'
这个错误通常表示你在使用字典时尝试访问一个不存在的键。请检查你的代码,查找是否有一个名为“submit_time”的键在你尝试访问它之前被正确地添加到字典中。你也可以尝试使用`dict.get()`方法来访问键,这样即使键不存在也不会引发 KeyError 错误。例如,你可以这样写:
```
my_dict = {'foo': 1, 'bar': 2}
submit_time = my_dict.get('submit_time')
if submit_time is None:
print("submit_time is not in the dictionary")
else:
print(f"submit_time is {submit_time}")
```
利用 SpringBoot搭建项目,整合ThymeLeaf、MySQL、Mybatis编写程序实现一个简单的个人身份信息查询功能。具体要求如下: (1)数据库名为db_personInfo,数据表为tb_user,表中属性包括id,code username,sex,age,address,tel,分别表示用户id,身份证号,姓名,性别,年龄,地址,联系电话。 (2)用户通过访问“lgetuserInfo”页面,输入身份证号,查询个人信息 (3)如果信息正确,则通过ThymeLeaf模板引擎返回touserhtml页面,显示用户身份信息(身份证号,姓名,性别,年龄,地址,联系电话) (4)如果用户不存在,则通过ThymeLeaf模板引擎返回errorhtml页面,提示用户输入信息错误 请给出整个系统详细的设计步骤思路和每个步骤中的关键代码(注:包括数报库创建和系统搭建过程)。
系统设计步骤思路如下:
1. 创建数据库和表
首先需要在MySQL中创建数据库和表,创建语句如下:
```sql
CREATE DATABASE db_personInfo;
USE db_personInfo;
CREATE TABLE tb_user (
id INT PRIMARY KEY AUTO_INCREMENT,
code VARCHAR(20) NOT NULL,
username VARCHAR(20) NOT NULL,
sex VARCHAR(2) NOT NULL,
age INT NOT NULL,
address VARCHAR(50) NOT NULL,
tel VARCHAR(20) NOT NULL
);
```
2. 创建SpringBoot项目
使用Spring Initializr创建一个SpringBoot项目,在pom.xml中添加依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
```
3. 配置数据源和Mybatis
在application.properties文件中配置数据源和Mybatis:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/db_personInfo?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
```
然后在mapper目录下创建UserMapper.xml文件,编写SQL语句:
```xml
<?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.demo.mapper.UserMapper">
<resultMap id="userMap" type="com.example.demo.entity.User">
<id column="id" property="id" />
<result column="code" property="code" />
<result column="username" property="username" />
<result column="sex" property="sex" />
<result column="age" property="age" />
<result column="address" property="address" />
<result column="tel" property="tel" />
</resultMap>
<select id="selectUserByCode" resultMap="userMap">
SELECT * FROM tb_user WHERE code = #{code}
</select>
</mapper>
```
4. 编写实体类和DAO接口
在entity包下创建User类:
```java
public class User {
private Integer id;
private String code;
private String username;
private String sex;
private Integer age;
private String address;
private String tel;
// getter and setter
}
```
在mapper包下创建UserMapper接口:
```java
@Mapper
public interface UserMapper {
User selectUserByCode(String code);
}
```
5. 编写Controller和ThymeLeaf模板
在controller包下创建UserController类:
```java
@Controller
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/getUserInfo")
public String getUserInfo() {
return "getUserInfo";
}
@PostMapping("/getUserInfo")
public String postUserInfo(String code, Model model) {
User user = userMapper.selectUserByCode(code);
if (user != null) {
model.addAttribute("user", user);
return "toUser";
} else {
return "error";
}
}
}
```
在templates目录下创建getUserInfo.html、toUser.html和error.html文件:
getUserInfo.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询个人信息</title>
</head>
<body>
<form action="#" method="post">
<label>请输入身份证号:</label>
<input type="text" name="code" />
<input type="submit" value="查询" />
</form>
</body>
</html>
```
toUser.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>个人身份信息</title>
</head>
<body>
<table border="1">
<tr>
<td>身份证号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>地址</td>
<td>联系电话</td>
</tr>
<tr>
<td th:text="${user.code}"></td>
<td th:text="${user.username}"></td>
<td th:text="${user.sex}"></td>
<td th:text="${user.age}"></td>
<td th:text="${user.address}"></td>
<td th:text="${user.tel}"></td>
</tr>
</table>
</body>
</html>
```
error.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询失败</title>
</head>
<body>
<h1>查询失败,请检查身份证号是否正确!</h1>
</body>
</html>
```
6. 运行程序
运行程序,在浏览器中访问http://localhost:8080/getUserInfo,输入身份证号进行查询,系统会根据数据库中的数据返回相应的信息,或者返回查询失败的提示信息。
关键代码如上所示,需要注意的是,要正确配置数据源和Mybatis,还需要注意ThymeLeaf模板引擎的使用。
阅读全文