用mybatis搞了一個訪問數據庫的maven工程,然后打成jar包,在另外一個工程上用反射調用的方式訪問其中的方法。在myeclipse上沒有問題可以訪問到,但是在idea上出現問題。
public class Test1 {
public static void main(String[] args) throws Exception {
File file=new File("D:/class/ML/backer.jar");
URL url=file.toURI().toURL();
ClassLoader loader=new URLClassLoader(new URL[]{url});
try{
Class<?> cls=loader.loadClass("com.backer.controller.DataSource");
Object obj=cls.newInstance();
Method method=cls.getMethod("getAllData", String.class);
ResponseBean rb=(ResponseBean) method.invoke(obj, new String("admin"));
System.out.println(rb.getRetMap());
}catch(Exception e){
}
}
}
此代碼在myeclipse上運行是沒有錯誤的然后放在idea上運行則出現以下錯誤
Caused by: org.apache.ibatis.binding.BindingException: Type interface com.sunyard.backer.dao.AlgorithmDataMapper is not known to the MapperRegistry.
at org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
at org.apache.ibatis.session.Configuration.getMapper(Configuration.java:745)
at org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:292)
at com.backer.controller.DataSource.getAllData(DataSource.java:31)
... 5 more
說我寫的mapper沒有被注冊到mybatis里。這個應該不是代碼的問題,網上有提到idea和myeclipse的某些差異,應該是某些開發工具的設置?另外jar是在myeclipse中開發的,也是在myeclipse中打的包。請教應該如何設置,或者有什么辦法?
maven工程寫了一個mybatis訪問數據庫。打成jar后,反射調用但是報mapper未注冊錯誤
慕尼黑8549860
2019-02-19 17:23:20
