下面我来详细讲解如何在SpringBoot中封装使用JDBC。
1. 使用JDBC操作数据库
1.1 创建数据库
首先,我们需要创建一个数据库来进行操作。假设我们使用MySQL数据库,在MySQL客户端中输入以下命令来创建一个名为“test”的数据库。
CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
1.2 添加MySQL驱动和Spring JDBC依赖
在我们的Maven pom.xml
文件中添加以下依赖。
<dependency>
<groupId>com.mysql.cj</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.5.5</version>
</dependency>
其中,mysql-connector-java
是与MySQL数据库连接的驱动,spring-boot-starter-jdbc
是SpringBoot中管理JDBC操作的依赖。
1.3 配置数据库连接
在SpringBoot应用程序的application.properties
或application.yml
文件中配置JDBC连接信息。
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
1.4 使用JdbcTemplate进行CRUD操作
接下来,我们可以使用Spring的JdbcTemplate
进行CRUD操作了。
首先,我们需要在SpringBoot的主应用程序中创建一个JdbcTemplate
,并将其注入到我们的DAO中。
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource());
}
}
然后,我们可以在我们的DAO中使用JdbcTemplate
进行CRUD操作。
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<User> listUsers() {
String sql = "SELECT * FROM users";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper(User.class));
}
public void addUser(User user) {
String sql = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)";
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getEmail());
}
public void updateUser(User user) {
String sql = "UPDATE users SET name=?, age=?, email=? WHERE id=?";
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getEmail(), user.getId());
}
public void deleteUser(int id) {
String sql = "DELETE FROM users WHERE id=?";
jdbcTemplate.update(sql, id);
}
}
以上代码中,BeanPropertyRowMapper
是一个很有用的类,它可以将结果集中的行映射到Java对象中。
1.5 示例
下面我们来举两个例子,分别是插入一条数据和查询所有数据。
首先,我们定义一个User
类。
public class User {
private int id;
private String name;
private int age;
private String email;
// 省略getter和setter
}
然后,我们可以在我们的控制器中使用UserDao
进行数据操作。
1.5.1 插入一条数据
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserDao userDao;
@PostMapping
public void addUser(@RequestBody User user) {
userDao.addUser(user);
}
}
当我们发送一个POST请求到/users
接口,并且请求体包含一个JSON格式的用户对象时,我们的应用程序就会将这个用户对象插入到数据库中。
1.5.2 查询所有数据
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserDao userDao;
@GetMapping
public List<User> listUsers() {
return userDao.listUsers();
}
}
当我们发送一个GET请求到/users
接口时,我们的应用程序就会从数据库中查询所有用户数据,并将其以JSON格式返回给客户端。
2. 总结
在本文中,我们详细讲解了如何在SpringBoot中封装使用JDBC。我们介绍了使用JdbcTemplate
进行CRUD操作的方法,并且通过两个实际示例展示了如何使用JDBC操作数据库。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解SpringBoot封装使用JDBC - Python技术站