前兩天又被公司叫去修改其餘產品的一些問題了,沒有看java相關的,今天週六,看了看MyBatis東西。java
就是簡單的在MySql中建了個users表,很簡單,包含id,name,age,寫了個bean。以下:(注,因爲初學java,可能不少名詞用的並非特別準確,大概理解一下就好了,待學成以後,再行修改。所謂大行不顧細謹,大禮不拘小節,O(∩_∩)O)apache
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中寫了一個測試程序,用來查詢。app
@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); }
結果,運行報錯。。。ide
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中增長了一個默認的構造函數,經過。。。函數
可能問題都不值得一提,可是,特此記錄一下學習歷程,也是一個頗有意思的事。。。學習