SpringBoot 练手MyBatis基础项目(tk.mybatis模板 ) 错误记录

出错记录:

  1. 练习spring boot+mybatis 逆向生成时,报出错误: generate failed: Exception getting JDBC Driver: com.mysql.jdbc.Driver在这里插入图片描述
    解决办法:在pom.xml文件中,标签中需要加上mysql依赖。(在dependencies标签中加过,这里要再加一次)
    在这里插入图片描述
  2. Cannot instantiate object of type tk.mybatis.com.martina.my_swagger.mapper.generator.MapperPlugin
[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:generate (default-cli) on project my_swagger: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:generate failed: Cannot instantiate object of type tk.mybatis.com.martina.my_swagger.mapper.generator.MapperPlugin -> [Help 1]

查阅资料:
mybatis-generator 的plugin有自己的classpath,我们在项目中直接继承的类和plugin不属于同一个classpath。mybatis-generator 的plugin有自己的classpath,我们在项目中直接继承的类和plugin不属于同一个classpath。
也就是说,需要在mapper的插件下(< plugins >标签下)也加上依赖。

还有说,javaClientGenerator 的type要指定好:

  <!-- 配置mapper对应的java映射  也可以叫dao层 -->
       <!-- XMLMAPPER:生成的对象是 MyBatis 3.x 映射器基础结构的 Java接口和XML映射文件。
        ANNOTATEDMAPPER:生成的对象是 MyBatis 3.x 映射器基础结构的Java接口(使用注解),无XML文件。-->
        <javaClientGenerator targetPackage="${generator.javaClient-targetPackage}" targetProject="${generator.targetProject}"
                             type="XMLMAPPER">
            <!--是否允许建立子包(对应MySql的scheme)-->
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

后来搞了半天,发现自己并不是依赖的问题,而是generator.xml中一个简单的字母拼错了,在此提醒自己一下,一定要注意细节问题。哭笑不得。

希望对大家有帮助。

  1. 如果出现创建Bean失败等情况,注意查看你的UserMapper.xml文件,看是不是GeneratorDisplay.java是否是运行了多次,导致xml创建了两次,导致指代不清。
    在这里插入图片描述

注意,本项目在使用MapperScan的时候,需要导入tk.mybatis.spring.annotation.MapperScan,而不是org.mybatis.spring.annotation.MapperScan。

在这里插入图片描述
因为引入的时候,是引入的tk.mybatis的依赖包。
在这里插入图片描述

  1. 启动Tomcat控制台报错:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:XXXX
    背景知识:
    APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。

解决办法:
在Tomcat的bin目录下找到 tcnative-1.dll,将其放在java/jdk/bin的目录下。如果自己没有这个文件,则下载该文件:
http://archive.apache.org/dist/tomcat/tomcat-connectors/native/

国际化配置:

spring.messages.cache-duration=3600s一定要加上s。
spring.messages.cache-seconds=3600已经废弃了
在这里插入图片描述

其他错误记录

  1. @Pathvariable(“id”) id一定要和后面的参数id名字一致,还有要和url中的传递的参数一致。否则会出错。
  2. 逆向生成不要重复。

在这里插入图片描述

  1. 在使用拦截器的时候,忘记了在MyWebMvcConfiguration类上加注解@Configuration啦,导致 拦截不成功。

  2. 在使用ThyMeleaf模板的时候,注意要和自己pojo或者Domain层的类中的属性名保持一致。

  3. 一定要记得在生成的mapper文件中,加上注解
    在这里插入图片描述

  4. 路径问题:@RequestMapping中的路径还是统一加上"/"比较规范。(带上斜杠表示绝对路径,不带斜杠表示的是相对路径)例如:
    在user/deleteUser中使用redirect: updateUser就表示转到user/updateUser中。加上斜杠(redirect: /updateUser)表示的是转到根目录下的updateUser中。

猜你喜欢

转载自blog.csdn.net/mulinsen77/article/details/83340633