使用preparedstatement 预编译,不适用jdbc连接,可以使用springboot框架中的什么,请给出代码示例
时间: 2024-02-12 12:06:48 浏览: 112
基于JAVA+SpringBoot+MySQL的校园台球厅人员与设备管理系统设计与实现.docx
在Spring Boot框架中,可以使用JdbcTemplate类来使用PreparedStatement预编译语句,而不需要使用原始的JDBC连接。以下是一个示例代码:
```java
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class MyRepository {
private final JdbcTemplate jdbcTemplate;
@Autowired
public MyRepository(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public int getCountByParam(String param) {
String sql = "SELECT COUNT(*) FROM my_table WHERE my_column = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{param}, Integer.class);
}
}
```
在这个示例中,我们使用了JdbcTemplate的queryForObject()方法来执行预编译的SQL查询语句。这个方法需要传入三个参数:SQL语句,参数列表,以及结果类型。在这个例子中,我们使用了一个占位符“?”来代表参数,然后使用了一个Object数组来传入参数值。最后,我们指定了结果类型为Integer.class。
需要注意的是,我们在类的头部使用了@Repository注解来标记这个类是一个Repository,这是Spring框架的一种惯例,可以让Spring自动扫描并将这个类注册为一个bean。同时,我们在构造方法中注入了一个DataSource对象,这个对象可以在Spring Boot框架中自动配置。
阅读全文