zoukankan      html  css  js  c++  java
  • MyBatis小问题-Mapper中错误No constructor found...

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

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

      

    复制代码
    package com.tszhao.dao;

    public class User {

    </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> id;</br></br>
    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String name;</br>
    </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> age;</br></br>
    
    </span><span style="color: #0000ff;">public</span> User(<span style="color: #0000ff;">int</span> id, String name, <span style="color: #0000ff;">int</span><span style="color: #000000;"> age) {</br>
        </span><span style="color: #0000ff;">super</span><span style="color: #000000;">();</br>
        </span><span style="color: #0000ff;">this</span>.id =<span style="color: #000000;"> id;</br>
        </span><span style="color: #0000ff;">this</span>.name =<span style="color: #000000;"> name;</br>
        </span><span style="color: #0000ff;">this</span>.age =<span style="color: #000000;"> age;</br>
    }</br></br>
    
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> getId() {</br>
        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> id;</br>
    }</br>
    

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

    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String getName() {</br>
        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> name;</br>
    }</br></br>
    
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> setName(String name) {</br>
        </span><span style="color: #0000ff;">this</span>.name =<span style="color: #000000;"> name;</br>
    }</br>
    
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> getAge() {</br>
        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> age;</br>
    }</br></br>
    
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> setAge(<span style="color: #0000ff;">int</span><span style="color: #000000;"> age) {</br>
        </span><span style="color: #0000ff;">this</span>.age =<span style="color: #000000;"> age;</br>
    }</br></br>
    
    @Override</br>
    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String toString() {</br>
        </span><span style="color: #0000ff;">return</span> "User [id=" + id + ", name=" + name + ", age=" + age + "]"<span style="color: #000000;">;</br>
    }</br>
    

    }

    复制代码

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

    复制代码
    @Test
    public 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中增加了一个默认的构造函数,通过。。。

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

  • 相关阅读:
    QT5 串口收发实例代码
    3D数学基础:四元数与欧拉角之间的转换
    3D数学基础:3D游戏动画中欧拉角与万向锁的理解
    WorldWind源码剖析系列:WorldWind如何确定与视点相关的地形数据的LOD层级与范围
    虚拟地球原理与实现
    开源(免费)三维 GIS(地形,游戏)
    [转]有关WorldWind1.4的worldwind.cs窗口设计器打开错误的解决方法
    [转]仿World Wind构造自己的C#版插件框架——WW插件机制精简改造
    [转]的C#实现三维数字地形漫游(基于Irrlicht)
    [转]开发Visual Studio风格的用户界面--MagicLibrary使用指南
  • 原文地址:https://www.cnblogs.com/jpfss/p/8440687.html
Copyright © 2011-2022 走看看