我会尽可能详细地讲解“SpringBoot整合Mybatis与Thymeleaf实现增删改查功能”的攻略,让您可以轻松实现该功能。
1. 前置条件
在开始之前,确保您已经完成以下准备工作:
- 安装Java JDK和IDE(如Eclipse、IntelliJ IDEA等)
- 掌握SpringBoot、Mybatis及Thymeleaf的基础知识
2. 创建SpringBoot项目
首先,我们要创建一个SpringBoot项目,可以使用Spring Initializr来生成基础代码。在创建项目时,需要勾选Mybatis和Thymeleaf的相关依赖。
在Eclipse中创建项目的步骤如下:
- 点击 File -> New -> Spring Starter Project
- 输入项目名称和相关信息,点击 Next
- 选择使用Maven构建工具,并选择需要的依赖项,包括MyBatis和Thymeleaf
- 点击 Finish 完成项目创建。
3. 配置数据库
在进行数据持久化操作之前,我们需要先配置数据库。可以在application.properties文件中添加以下内容:
spring.datasource.url= jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
这里我们以MySQL数据库为例,配置了数据库连接的URL、用户名、密码及驱动程序。
4. 创建实体类和持久层接口
在进行数据库操作时,我们需要创建相应的实体类和持久层接口,以便进行数据持久化操作。
在本例中,我们创建一个Person实体类和PersonMapper持久层接口:
public class Person {
private Integer id;
private String name;
private Integer age;
// 省略getter/setter方法
}
@Mapper
public interface PersonMapper {
@Select("SELECT id,name,age FROM person WHERE id=#{id}")
Person findById(Integer id);
@Insert("INSERT INTO person(name,age) VALUES(#{name},#{age})")
void save(Person person);
@Update("UPDATE person SET name=#{name},age=#{age} WHERE id=#{id}")
void update(Person person);
@Delete("DELETE FROM person WHERE id=#{id}")
void delete(Integer id);
@Select("SELECT id,name,age FROM person")
List<Person> findAll();
}
在上面的代码片段中,我们使用了Mybatis的注解来指定SQL语句和参数,通过@Id注解来设置主键属性。
需要注意的是,我们需要在PersonMapper接口上添加@Mapper注解,以便让SpringBoot能够自动扫描该接口并生成相应的代理对象。
5. 创建控制器和HTML页面
在进行增删改查操作时,我们需要创建相应的控制器和HTML页面。
在本例中,我们创建一个PersonController控制器和person.html、person_add.html、person_edit.html三个HTML页面:
@Controller
public class PersonController {
@Autowired
private PersonMapper personMapper;
@GetMapping("/person")
public String list(Model model) {
List<Person> persons = personMapper.findAll();
model.addAttribute("persons", persons);
return "person";
}
@GetMapping("/person/add")
public String add() {
return "person_add";
}
@PostMapping("/person/save")
public String save(Person person) {
personMapper.save(person);
return "redirect:/person";
}
@GetMapping("/person/edit/{id}")
public String edit(@PathVariable("id") Integer id, Model model) {
Person person = personMapper.findById(id);
model.addAttribute("person", person);
return "person_edit";
}
@PostMapping("/person/update")
public String update(Person person) {
personMapper.update(person);
return "redirect:/person";
}
@GetMapping("/person/delete/{id}")
public String delete(@PathVariable("id") Integer id) {
personMapper.delete(id);
return "redirect:/person";
}
}
上述代码中,我们首先使用@Autowired注解将PersonMapper注入到控制器中,然后分别实现了列表、添加、编辑、删除等操作。
对应的HTML页面代码如下:
person.html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Person List</title>
</head>
<body>
<h1>Person List</h1>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Operation</th>
</tr>
<tr th:each="person : ${persons}">
<td th:text="${person.getId()}"></td>
<td th:text="${person.getName()}"></td>
<td th:text="${person.getAge()}"></td>
<td><a th:href="@{/person/edit/{id}(id=${person.getId()})}">Edit</a> | <a
th:href="@{/person/delete/{id}(id=${person.getId()})}">Delete</a></td>
</tr>
</table>
<p>
<a href="/person/add">Add Person</a>
</p>
</body>
</html>
person_add.html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Add Person</title>
</head>
<body>
<h1>Add Person</h1>
<form action="/person/save" method="post">
<label>Name:</label> <input type="text" name="name" /><br />
<label>Age:</label> <input type="text" name="age" /><br />
<input type="submit" value="Save" />
</form>
<p>
<a href="/person">Person List</a>
</p>
</body>
</html>
person_edit.html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Edit Person</title>
</head>
<body>
<h1>Edit Person</h1>
<form action="/person/update" method="post">
<input type="hidden" th:name="${_csrf.parameterName}"
th:value="${_csrf.token}" />
<input type="hidden" name="id" th:value="${person.id}" />
<label>Name:</label> <input type="text" name="name"
th:value="${person.name}" /><br /> <label>Age:</label> <input
type="text" name="age" th:value="${person.age}" /><br />
<input type="submit" value="Save" />
</form>
<p>
<a href="/person">Person List</a>
</p>
</body>
</html>
在上述HTML页面的代码中,我们使用了Thymeleaf模板引擎来进行页面渲染,其中使用了Thymeleaf的标准表达式来显示数据、处理表单等操作。
6. 运行测试
当我们完成上述步骤后,就可以对我们的增删改查功能进行测试了。可以在浏览器中输入 http://localhost:8080/person 来访问Person列表页面,测试增删改查等功能。
我们也可以使用Postman等工具来进行API的测试,以便更加方便的进行接口测试和验证。
示例1:查询Person列表
- 请求地址:http://localhost:8080/person
- 请求方法:GET
返回数据:
[
{
"id": 1,
"name": "张三",
"age": 18
},
{
"id": 2,
"name": "李四",
"age": 20
},
{
"id": 3,
"name": "王五",
"age": 22
}
]
示例2:添加Person
- 请求地址:http://localhost:8080/person/save
- 请求方法:POST
- 请求体:
{
"name": "赵六",
"age": 25
}
返回数据:
重定向到:/person
总结
通过本文的讲解,我们可以学习到在SpringBoot中如何进行Mybatis和Thymeleaf的整合,以及如何实现增删改查等基本功能。希望本文能够对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Mybatis与thymleft实现增删改查功能详解 - Python技术站