提示信息

Spring Boot 整合JDBC实现示例

困城寄她 已关注

在Spring Boot应用中整合JDBC是一个常见的任务,用于直接与数据库进行交互。以下是一个简单的Spring Boot整合JDBC的示例:

1. 创建Spring Boot项目

首先,创建一个Spring Boot项目。如果你使用Spring Initializr,那么选择以下依赖:

  • Spring Web
  • Spring JDBC
  • Spring Boot DevTools (可选)
  • H2 Database (或其他你选择的数据库)

2. 配置数据源

src/main/resources/application.properties中配置数据库连接信息。例如,如果你使用嵌入式H2数据库:

  1. # H2 Database configuration
  2. spring.datasource.url=jdbc:h2:mem:testdb
  3. spring.datasource.driver-class-name=org.h2.Driver
  4. spring.datasource.username=sa
  5. spring.datasource.password=
  6. spring.h2.console.enabled=true
  7. # Show SQL queries
  8. spring.jpa.show-sql=true

3. 创建数据库表

可以通过SQL脚本文件来初始化数据库。创建一个文件data.sql放在src/main/resources下:

  1. CREATE TABLE IF NOT EXISTS users (
  2. id INT AUTO_INCREMENT PRIMARY KEY,
  3. name VARCHAR(50),
  4. email VARCHAR(50)
  5. );
  6. INSERT INTO users (name, email) VALUES
  7. ('Alice', 'alice@example.com'),
  8. ('Bob', 'bob@example.com');

4. 编写JdbcTemplate示例

创建一个User实体类:

  1. public class User {
  2. private int id;
  3. private String name;
  4. private String email;
  5. // Getters and Setters
  6. }

创建一个UserRepository类来处理数据库操作:

  1. import org.springframework.jdbc.core.JdbcTemplate;
  2. import org.springframework.jdbc.core.RowMapper;
  3. import org.springframework.stereotype.Repository;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.util.List;
  7. @Repository
  8. public class UserRepository {
  9. private final JdbcTemplate jdbcTemplate;
  10. public UserRepository(JdbcTemplate jdbcTemplate) {
  11. this.jdbcTemplate = jdbcTemplate;
  12. }
  13. public List<User> findAll() {
  14. return jdbcTemplate.query("SELECT * FROM users", new UserRowMapper());
  15. }
  16. public void save(User user) {
  17. jdbcTemplate.update("INSERT INTO users (name, email) VALUES (?, ?)",
  18. user.getName(), user.getEmail());
  19. }
  20. private static class UserRowMapper implements RowMapper<User> {
  21. @Override
  22. public User mapRow(ResultSet rs, int rowNum) throws SQLException {
  23. User user = new User();
  24. user.setId(rs.getInt("id"));
  25. user.setName(rs.getString("name"));
  26. user.setEmail(rs.getString("email"));
  27. return user;
  28. }
  29. }
  30. }

5. 创建Controller

创建一个简单的Controller来测试:

  1. import org.springframework.web.bind.annotation.GetMapping;
  2. import org.springframework.web.bind.annotation.PostMapping;
  3. import org.springframework.web.bind.annotation.RequestBody;
  4. import org.springframework.web.bind.annotation.RestController;
  5. import java.util.List;
  6. @RestController
  7. public class UserController {
  8. private final UserRepository userRepository;
  9. public UserController(UserRepository userRepository) {
  10. this.userRepository = userRepository;
  11. }
  12. @GetMapping("/users")
  13. public List<User> getUsers() {
  14. return userRepository.findAll();
  15. }
  16. @PostMapping("/users")
  17. public void addUser(@RequestBody User user) {
  18. userRepository.save(user);
  19. }
  20. }

6. 运行应用程序

使用mvn spring-boot:run或你的IDE运行Spring Boot应用程序。

7. 测试API

使用工具(如Postman)来测试你的API:
- GET请求http://localhost:8080/users可以得到所有用户。
- POST请求http://localhost:8080/users可以添加新用户,Request Body格式如下:
{ "name": "Charlie", "email": "charlie@example.com" }

以上就是一个基本的Spring Boot整合JDBC的示例。根据你的需求,你可以更改数据库类型及其相应的配置。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
困城寄她 关注 已关注

最近一次登录:2024-11-20 18:06:34   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图