📅  最后修改于: 2023-12-03 14:47:33.552000             🧑  作者: Mango
Spring JdbcTemplate是Spring框架提供的JDBC操作工具,帮助开发者更加方便地进行对数据库的操作。本教程将带您了解Spring JdbcTemplate的使用和实践。
在开始之前,确保您已经完成以下步骤:
CREATE DATABASE test;
USE test;
CREATE TABLE user (
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
email VARCHAR(50),
PRIMARY KEY (id)
);
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.8</version>
</dependency>
使用Spring JdbcTemplate需要先配置数据源。以MySQL为例,以下是一个JdbcTemplate配置的示例:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false" />
<property name="username" value="root" />
<property name="password" value="password" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
使用JdbcTemplate插入一条数据可以使用如下代码:
public void addUser(User user) {
jdbcTemplate.update("INSERT INTO user (id, name, email) VALUES (?, ?, ?)",
user.getId(), user.getName(), user.getEmail());
}
使用JdbcTemplate查询数据可以使用如下代码:
public List<User> getUsers() {
return jdbcTemplate.query("SELECT * FROM user", new UserRowMapper());
}
public 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;
}
}
使用JdbcTemplate更新一条数据可以使用如下代码:
public void updateUser(User user) {
jdbcTemplate.update("UPDATE user SET name = ?, email = ? WHERE id = ?",
user.getName(), user.getEmail(), user.getId());
}
使用JdbcTemplate删除一条数据可以使用如下代码:
public void deleteUser(int id) {
jdbcTemplate.update("DELETE FROM user WHERE id = ?", id);
}
使用Spring JdbcTemplate,可以方便地进行对数据库的操作,使用简单,并且避免了手动管理连接和资源的繁琐操作。另外,Spring还提供了另外的orm框架,JPA,MyBatis等,根据实际情况进行选择)。
参考文献:
https://docs.spring.io/spring-framework/docs/5.3.8/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html