今天在学习MyBatis的逆向工程,MyBatis Generator报错:
Exception in thread “main” java.lang.RuntimeException: Cannot instantiate object of type null
at org.mybatis.generator.internal.ObjectFactory.createInternalObject(ObjectFactory.java:184)
at org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBatis3Impl.createJavaClientGenerator(IntrospectedTableMyBatis3Impl.java:125)
at org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBatis3Impl.requiresXMLGenerator(IntrospectedTableMyBatis3Impl.java:258)
at org.mybatis.generator.config.Context.validate(Context.java:175)
at org.mybatis.generator.config.Configuration.validate(Configuration.java:69)
at org.mybatis.generator.api.MyBatisGenerator.(MyBatisGenerator.java:112)
at edu.dgut.test.MBGTest.main(MBGTest.java:24)
检查一番之后发现是在MyBatis-Generator的配置文件mbd.xml中,没有给javaClientGenerator标签配置正确的type属性。
<javaClientGenerator targetPackage="xxx.xxx.dao" targetProject="./src/main/java"/>
太粗心了,少了type属性。
由于生成的对象是 MyBatis 3.x 映射器基础结构的 Java接口和XML映射文件,所以加上**type=“XMLMAPPER”**后不再报错。
<javaClientGenerator targetPackage="xxx.xxx.dao" targetProject="./src/main/java" type="XMLMAPPER"/>