MyBatis小问题-Mapper中错误No constructor found...

Posted 星朝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis小问题-Mapper中错误No constructor found...相关的知识,希望对你有一定的参考价值。

  前两天又被公司叫去修改其他产品的一些问题了,没有看java相关的,今天周六,看了看MyBatis东西。

  就是简单的在mysql中建了个users表,很简单,包含id,name,age,写了个bean。如下:(注,由于初学java,可能很多名词用的并不是特别准确,大概理解一下就行了,待学成之后,再行修改。所谓大行不顾细谨,大礼不拘小节,O(∩_∩)O)

  

技术分享图片
package com.tszhao.dao;

public class User {

private int id;

private String name;
private int age;

public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
技术分享图片

  在JUnit中写了一个测试程序,用来查询。

技术分享图片
@Testpublic void testSelect() {
SqlSessionFactory factory
= MyBatisUtils.getFactory();
SqlSession openSession
= factory.openSession();
UserMapper mapper
= openSession.getMapper(UserMapper.class);
User selectUser
= mapper.selectUser(1);
System.out.println(selectUser);
}
技术分享图片

  结果,运行报错。。。

技术分享图片
org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in com.tszhao.dao.User matching [java.lang.Integer, java.lang.String, java.lang.Integer]
### The error may exist in com
/tszhao/mapper/UserMapper.java (best guess)
### The error may involve com.tszhao.mapper.UserMapper.selectUser
### The error occurred
while handling results
### SQL: select
* from users where id=?
### Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in com.tszhao.dao.User matching [java.lang.Integer, java.lang.String, java.lang.Integer]
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:
30)
...
技术分享图片

  看样子,应该跟构造函数相关。找不到与User相关的构造函数。试着在User中增加了一个默认的构造函数,通过。。。

  可能问题都不值得一提,但是,特此记录一下学习历程,也是一个很有意思的事。。。

























































以上是关于MyBatis小问题-Mapper中错误No constructor found...的主要内容,如果未能解决你的问题,请参考以下文章

No MyBatis mapper was found in '[xx.mapper]' package. Please check your configuration

mybatis+spring boot, mapper 提示Could not autowire. No beans of … type found

Springboot使用@Autowired注入Mapper接口编译错误“Could not autowire. No beans of ‘UserMapper‘ type found.“

Spring Boot启动时出现WARN:No MyBatis mapper was found in

MyBatis - 如何在 mybatis xml mapper 文件中定义数组

MyBatis的使用2(使用注解配置mapper)