1. 程式人生 > >SSM搭建遇到的坑

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註解,當然加了也無所謂~