@GetMapping("/{id}") public Map<String, Object> findSchoolsById(@PathVariable String id) { School school = schoolService.getById(id); return message.message(true, "请求成功", "school", school); }
时间: 2024-01-28 22:05:13 浏览: 74
这是一个使用了@GetMapping注解的Spring Boot Restful API接口,路径是"/{id}",用于根据id查找学校信息。其中@PathVariable注解用于将路径中的id参数传递给方法中的id变量。schoolService是一个学校服务类,通过调用getById方法获取对应id的学校信息。最后通过message对象返回一个包含学校信息的Map对象,其中"school"为键,对应的学校信息为值。
相关问题
axios({ method: 'get', url: '/BookShopSystem_war/getQueryBook/' + bookName@GetMapping("/getQueryBook/{bookName}") @ResponseBody public Map<String, Object> getQueryBook(@PathVariable("bookName") String bookName) { List<Book> queryBookList = bookService.getQueryBook(bookName); HashMap<String, Object> result = new HashMap<>(); result.put("code", 0); result.put("msg", "success"); result.put("data", queryBookList); return result; }<select id="getQueryBook" parameterType="String" resultMap="bookResult"> select * from book where book_name like CONCAT('%',#{bookName},'%') </select>传递的参数会乱码
这段代码使用了Spring Boot框架和MyBatis进行Web开发,前端使用了Axios库发送了一个GET请求,请求的url中包含了查询的书名参数。后端使用了Spring Boot的注解`@GetMapping`和`@PathVariable`来获取参数值,并将参数值传递给MyBatis的mapper进行数据库查询。
如果参数出现了乱码,可以尝试以下解决方法:
1. 确认前后端字符集是否一致,如果不一致则需要对字符集进行统一。
2. 在前端将查询字符串进行编码,使用encodeURIComponent()函数进行编码。后端在接收到查询字符串后,使用decodeURIComponent()函数进行解码。
3. 在Spring Boot的配置文件中指定字符集,例如:
```
spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf8
```
这样可以确保Spring Boot和数据库之间使用一致的字符集进行数据传输。
4. 在mapper中使用Java内置的URLEncoder类对参数进行编码,例如:
```
select * from book where book_name like CONCAT('%',#{bookName, jdbcType=VARCHAR},'%')
```
在Java代码中,将参数进行编码:
```
String encodedParam = URLEncoder.encode(bookName, "UTF-8");
```
然后将编码后的参数传递给mapper。
以上任何一种方法都可以解决参数乱码的问题。
如果分页查询的Controll类是这样 @GetMapping("/getZhnyPlaceBypage/{number}/{pages}") public Map<String,Object> getZhnyPlaceBypage(@PathVariable("number")Integer number, @PathVariable("pages")Integer pages, @RequestParam("id")Integer id){ Page<ZhnyPlace> myZhnyPlace = zhnyPlaceService.getZhnyPlaceBypage(number,pages,id); HashMap<String,Object> map = new HashMap<>(); map.put("code",200); map.put("message","操作成功"); map.put("data",myZhnyPlace); return map; } Service类是这样 public interface ZhnyPlaceService extends IService<ZhnyPlace> { List<ZhnyPlace> getPlace(); Page<ZhnyPlace> getZhnyPlaceBypage(Integer number, Integer pages,Integer id); 那我的下面这个Servicelmpl类 @Override public Page<ZhnyPlace> getZhnyPlaceBypage(Integer number, Integer pages, Integer id) { return null; } 该写成什么样
你可以在 ServiceImpl 类中使用 MybatisPlus 提供的 Page 工具类进行分页查询,示例代码如下:
```java
@Override
public Page<ZhnyPlace> getZhnyPlaceBypage(Integer number, Integer pages, Integer id) {
Page<ZhnyPlace> page = new Page<>(number, pages); // 创建分页对象
QueryWrapper<ZhnyPlace> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", id); // 添加查询条件
return zhnyPlaceMapper.selectPage(page, queryWrapper); // 返回分页查询结果
}
```
其中,`zhnyPlaceMapper` 是自动生成的 Mapper 接口实例,你需要在 Spring 的配置文件中配置该 Bean。
阅读全文