利用 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页面,提示用户输入信息错误 请给出整个系统详细的设计步骤思路和每个步骤中的关键代码(注:包括数报库创建和系统搭建过程)。
时间: 2024-03-19 15:41:36 浏览: 160
系统设计步骤思路如下:
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模板引擎的使用。
阅读全文