SSM搭建遇到的坑
1,Error:(6, 24) java: package org.junit.runner does not exist
錯誤原因:
當時傻傻的把zl 包(單元測試包)放在了src/main/java/ 目錄下了.
解決辦法: 測試包放在src/test/java/ 目錄下.
2, Failed to read artifact descriptor for org.mybatis:mybatis-spring:jar:1.3.1
在pop.xml 中配置:
<!-- DAO: Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
mvn不能生成mybatis 所需要的jar包,導致mybatis 不能使用
解決辦法: 在File->Settings->Maven,選中
3.java.lang.Exception: No runnable methods
在進行單元測試的時候,我傻傻企圖執行BaseTest,並且傻傻的在BaseTest中添加了一個main,除錯發現test 一直為null.
應該是執行BookDaoTest.
4.Caused by: org.apache.ibatis.binding.BindingException: Parameter 'offset' not found. Available parameters are [arg1, arg0, param1, param2]
出錯原因:
List <Book> queryAll( int offset, int limit);
應該寫成:
List <Book> queryAll(@Param("offset") int offset, @Param("limit") int limit);
應該寫成
List <Book> queryAll(@Param("offset") int offset, @Param("limit") int limit);
引用一位大神部落格裡面的一句解釋:https://blog.csdn.net/qq598535550/article/details/51703190#commentBox
這裡為什麼要給方法的引數新增@Param
註解呢?是因為該方法有兩個或以上的引數,一定要加,不然mybatis識別不了。
上面的BookDao
介面的queryById
方法和reduceNumber
方法只有一個引數book_id
,所以可以不用加@Param
註解,當然加了也無所謂~