测试接口时,接口测试报错:
java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;
解决方案:pojo类中的变量属性类型格式和数据库中数据的类型格式不对应。参考下面的pojo代码。由于我数据库中数据的格式是:yyyy-MM-dd HH:mm:ss,所以在两个Date类型字段的"get*"方法上加了注释即可解决:@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-dd HH:mm:ss")
测试代码:
package org.df.test_controller;
import org.df.dao.ProjectManagementDao;
import org.df.pojo.ProjectPojo;
import org.df.service.ProjectManagementService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:springapplicationContext.xml")
public class ParentTest {
@Autowired
ProjectManagementDao projectManagementDao;
@Autowired
ProjectManagementService projectManagementService;
@Test
public void testGetProject(){
List<ProjectPojo> list = projectManagementService.getProject();
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
pojo类:
package org.df.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class ProjectPojo {
private String id;
private String name;
private String code;
private String area;
private String description;
private Date createTime;
private String createId;
private Date updateTime;
private String updateId;
private String enums;
private int status;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-dd HH:mm:ss")
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getCreateId() {
return createId;
}
public void setCreateId(String createId) {
this.createId = createId;
}
@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-dd HH:mm:ss")
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getUpdateId() {
return updateId;
}
public void setUpdateId(String updateId) {
this.updateId = updateId;
}
public String getEnums() {
return enums;
}
public void setEnums(String enums) {
this.enums = enums;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
@Override
public String toString() {
return "ProjectPojo{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", code='" + code + '\'' +
", area='" + area + '\'' +
", description='" + description + '\'' +
", createTime=" + createTime +
", createId='" + createId + '\'' +
", updateTime=" + updateTime +
", updateId='" + updateId + '\'' +
", enums='" + enums + '\'' +
", status=" + status +
'}';
}
}
需要导入的包:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.2</version>
</dependency>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
网上有说mybatis和mybatis-spring版本不对的。我用的是下面的两个版本,是对的。
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>