Java开发:Bug修复与防止踩坑指南

需积分: 9 0 下载量 162 浏览量 更新于2024-09-01 收藏 7KB MD 举报
"bug集中营总结.md" 是一篇关于作者在编程过程中遇到的常见问题及其解决方案的文档。其中提到了两个主要的bug及其处理方法。 ### 问题1:创建mapper接口,编写xml文件sql语句,执行错误 当遇到`org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)`这个异常时,通常是由于Maven默认加载机制导致的问题。Maven仅编译.java文件,而不处理.xml文件。以下是一些解决方法: 1. 手动复制xml目录:将xml文件复制到target目录,帮助Maven完成编译。 2. 移动xml文件:将xml文件移至`src/main/resources`目录,这样Maven会在构建过程中自动处理它们。 3. 推荐做法:在pom.xml和application.properties文件中做如下配置: - 在pom.xml中添加构建资源配置,使Maven包含java目录下的所有.xml文件: ```xml <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> ``` - 在application.properties中指定MyBatis-Plus的mapper XML文件路径,如: ```properties mybatis-plus.mapper-locations=classpath:com/atguigu/eduservice/mapper/xml/*.xml ``` ### 问题2:未指定泛型的类型 在使用`@RequestParam`注解时,如果参数类型是`List<?>`,而没有明确指定泛型类型,会导致编译错误。例如: ```java @DeleteMapping("/eduvod/video/delete-batch") public R deleteBatch(@RequestParam("videoIds") List<?> videoIds) { // ... } ``` 修复这个问题的方法是在`List`后面明确指定泛型类型,例如,如果视频ID是Integer类型,应改为: ```java @DeleteMapping("/eduvod/video/delete-batch") public R deleteBatch(@RequestParam("videoIds") List<Integer> videoIds) { // ... } ``` 这样做可以确保类型安全,并避免在运行时出现类型转换异常。 这两个bug及其解决方案是开发者在日常工作中可能会遇到的问题,及时识别并正确处理这些问题能提高开发效率,避免无谓的时间浪费。对于初学者来说,理解这些问题的原因和解决方法是非常重要的,可以帮助他们在编程过程中少走弯路。