springboot 接口传入数组参数解析到sql查询语句中执行
时间: 2023-12-02 22:02:54 浏览: 187
springboot+sql完整实例导入可用,代码通过阿里规约检测没有任何错误,适合初学者。
在Spring Boot中,可以使用@RequestParam注解将前端传入的数组参数解析成Java中的数组,然后将其传递给MyBatis等ORM框架或者JDBC进行SQL查询。以下是示例代码:
```java
@RestController
@RequestMapping("/api")
public class MyController {
@Autowired
private MyService myService;
@GetMapping("/query")
public List<MyObject> query(@RequestParam("ids") List<Integer> ids) {
return myService.queryByIds(ids);
}
}
```
在上面的代码中,我们使用@RequestParam注解将前端传入的数组参数ids解析成List<Integer>类型。然后,我们将这个List<Integer>类型的参数传递给MyService中的queryByIds方法进行SQL查询。以下是MyService中的代码:
```java
@Service
public class MyService {
@Autowired
private MyMapper myMapper;
public List<MyObject> queryByIds(List<Integer> ids) {
return myMapper.selectByIds(ids);
}
}
```
在上面的代码中,我们使用MyBatis进行SQL查询,将前端传入的ids参数作为查询条件。以下是MyMapper中的代码:
```java
@Mapper
public interface MyMapper {
@Select("<script>" +
" SELECT * FROM my_table " +
" WHERE id IN " +
" <foreach item='id' collection='ids' open='(' separator=',' close=')'>" +
" #{id}" +
" </foreach>" +
"</script>")
List<MyObject> selectByIds(List<Integer> ids);
}
```
在上面的代码中,我们使用了MyBatis的foreach标签将ids参数作为查询条件,查询出所有符合条件的MyObject对象,并返回给前端。
阅读全文