Java開發常見錯誤:org.mybatis.spring.MyBatisSystemException
阿新 • • 發佈:2018-12-30
org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are [param1, tag]
《===================================解決方案一======================================》
傳遞的引數為Map型別
一直對Map型別作為引數不是很熟悉,後來定位到Map引數取值問題。
原因是:Dao接口裡面使用了@Param 而引數為Map時,去引數應該是#{paraMap.email}
public List<Book> getBooksUnderEmailAndTag(@Param(value="tag")Map<String,String> paraMap);
一般出項這種情況,都是有關聯物件,而且想一次性新增或者修改。可以使用分離物件新增或修改。
比如User和Department物件。User中有dep_id.這樣我們可以先通過depId查出dep的name。先設定user的部門為dep.
然後再新增User物件。想這樣的邏輯處理可以放到service層。。
UserService中。
public void update(User user,int depId) { Department dep=departmentDao.load(depId); user.setDepartment(dep); //設定部門 this.userDao.update(user); //新增User物件。 }
至於SQL不用改變,一次性寫好。
insert into t_user(username,password,nickname,dep_id)
value(#{username},#{password},#{nickname},#{department.id});