给出完整的代码Spring Boot JDBCTemplate,获取数据库,增删改查,显示在网页上
时间: 2024-06-09 13:05:42 浏览: 94
以下是一个简单的Spring Boot应用程序,使用JDBCTemplate获取数据库连接,进行增删改查操作,并将结果显示在网页上。
首先,我们需要在pom.xml文件中添加以下依赖项:
```xml
<dependencies>
<!-- Spring Boot Starter JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
```
接下来,我们需要在application.properties文件中配置数据库连接信息:
```properties
# 数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# JDBCTemplate配置
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.minimum-idle=2
spring.datasource.hikari.idle-timeout=60000
```
然后,我们可以创建一个User实体类,用于表示数据库中的用户表:
```java
public class User {
private Long id;
private String name;
private Integer age;
// getters and setters
}
```
接下来,我们需要创建一个UserDao类,用于操作数据库:
```java
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void save(User user) {
String sql = "insert into user(name, age) values(?, ?)";
jdbcTemplate.update(sql, user.getName(), user.getAge());
}
public void update(User user) {
String sql = "update user set name=?, age=? where id=?";
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
}
public void delete(Long id) {
String sql = "delete from user where id=?";
jdbcTemplate.update(sql, id);
}
public User findById(Long id) {
String sql = "select * from user where id=?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));
}
public List<User> findAll() {
String sql = "select * from user";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}
}
```
最后,我们可以创建一个UserController类,用于处理HTTP请求并将结果显示在网页上:
```java
@Controller
public class UserController {
@Autowired
private UserDao userDao;
@GetMapping("/")
public String index(Model model) {
List<User> userList = userDao.findAll();
model.addAttribute("userList", userList);
return "index";
}
@GetMapping("/add")
public String add() {
return "add";
}
@PostMapping("/save")
public String save(User user) {
userDao.save(user);
return "redirect:/";
}
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, Model model) {
User user = userDao.findById(id);
model.addAttribute("user", user);
return "edit";
}
@PostMapping("/update")
public String update(User user) {
userDao.update(user);
return "redirect:/";
}
@GetMapping("/delete/{id}")
public String delete(@PathVariable("id") Long id) {
userDao.delete(id);
return "redirect:/";
}
}
```
在上面的代码中,我们定义了五个方法来处理HTTP请求:
- index方法用于显示所有用户信息;
- add方法用于显示添加用户表单;
- save方法用于保存用户信息;
- edit方法用于显示编辑用户表单;
- update方法用于更新用户信息;
- delete方法用于删除用户信息。
最后,我们需要创建三个HTML模板文件,分别是index.html、add.html和edit.html,用于显示网页内容:
index.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Action</th>
</tr>
<tr th:each="user : ${userList}">
<td th:text="${user.id}"></td>
<td th:text="${user.name}"></td>
<td th:text="${user.age}"></td>
<td>
<a th:href="@{/edit/__${user.id}__}">编辑</a>
<a th:href="@{/delete/__${user.id}__}">删除</a>
</td>
</tr>
</table>
<p><a href="/add">添加用户</a></p>
</body>
</html>
```
add.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>添加用户</title>
</head>
<body>
<h1>添加用户</h1>
<form method="post" action="/save">
<p><label>Name: <input type="text" name="name"/></label></p>
<p><label>Age: <input type="text" name="age"/></label></p>
<p><input type="submit" value="Save"/></p>
</form>
<p><a href="/">返回</a></p>
</body>
</html>
```
edit.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>编辑用户</title>
</head>
<body>
<h1>编辑用户</h1>
<form method="post" action="/update">
<input type="hidden" name="id" th:value="${user.id}"/>
<p><label>Name: <input type="text" name="name" th:value="${user.name}"/></label></p>
<p><label>Age: <input type="text" name="age" th:value="${user.age}"/></label></p>
<p><input type="submit" value="Update"/></p>
</form>
<p><a href="/">返回</a></p>
</body>
</html>
```
现在,我们可以运行应用程序,访问http://localhost:8080/,即可看到所有用户信息。我们还可以点击“添加用户”按钮来添加新用户,或者点击“编辑”按钮来更新用户信息。
阅读全文