使用jdbc模板进行模糊查询
时间: 2024-04-15 17:25:29 浏览: 10
使用JDBC模板进行模糊查询,您可以使用SQL语句的LIKE操作符和JDBC模板提供的方法来实现。以下是一个示例:
```java
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
public class EmployeeDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List<Employee> searchEmployees(String keyword) {
String sql = "SELECT * FROM employees WHERE name LIKE ?";
// 使用?占位符来避免SQL注入攻击
String searchString = "%" + keyword + "%"; // 在关键字前后添加%
// 使用RowMapper将查询结果映射为Employee对象
RowMapper<Employee> rowMapper = new RowMapper<Employee>() {
@Override
public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
Employee employee = new Employee();
employee.setId(rs.getInt("id"));
employee.setName(rs.getString("name"));
// 其他属性的映射...
return employee;
}
};
// 执行查询并返回结果
return jdbcTemplate.query(sql, new Object[]{searchString}, rowMapper);
}
}
```
在上面的示例中,`searchEmployees`方法接收一个关键字作为参数,并在SQL语句中使用LIKE操作符进行模糊查询。通过在关键字前后添加通配符`%`,可以实现模糊匹配。然后,使用`jdbcTemplate.query`方法执行查询,并使用`RowMapper`将结果集映射为Employee对象。
请注意,上述示例中的`Employee`类是一个自定义的Java类,您需要根据自己的实际情况进行调整和完善。另外,还需要在Spring配置文件中配置JDBC模板和数据源。