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数据库:
# H2 Database configuration
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true
# Show SQL queries
spring.jpa.show-sql=true
3. 创建数据库表
可以通过SQL脚本文件来初始化数据库。创建一个文件data.sql
放在src/main/resources
下:
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(50)
);
INSERT INTO users (name, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');
4. 编写JdbcTemplate示例
创建一个User
实体类:
public class User {
private int id;
private String name;
private String email;
// Getters and Setters
}
创建一个UserRepository
类来处理数据库操作:
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
@Repository
public class UserRepository {
private final JdbcTemplate jdbcTemplate;
public UserRepository(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List<User> findAll() {
return jdbcTemplate.query("SELECT * FROM users", new UserRowMapper());
}
public void save(User user) {
jdbcTemplate.update("INSERT INTO users (name, email) VALUES (?, ?)",
user.getName(), user.getEmail());
}
private static class UserRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
return user;
}
}
}
5. 创建Controller
创建一个简单的Controller来测试:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
private final UserRepository userRepository;
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping("/users")
public List<User> getUsers() {
return userRepository.findAll();
}
@PostMapping("/users")
public void addUser(@RequestBody User user) {
userRepository.save(user);
}
}
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的示例。根据你的需求,你可以更改数据库类型及其相应的配置。