zoukankan      html  css  js  c++  java
  • 错误记录

    2019/03/24
    使用mybatis-generator出现的错误:
    1. java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0
    原因:jdk版本与mysql版本冲突
    解决: 1、jdk7+老版5.0驱动com/mysql/jdbc/Driver
    2、jdk8+新版6.0驱动com/mysql/cj/jdbc/Driver

    2.连接数据库时区异常
    ERROR: The server time zone value ‘****’ is unrecognized or represents more than one time zone
    提示系统时区出现错误
    解决:
    将jdbcUrl写为:jdbc:mysql://localhost:3306/exam?characterEncoding=utf8&serverTimezone=UTC
    在xml的配置文件中;要用 &代替。

    3.列名为空异常
    Column name pattern can not be NULL or empty
    原因:工程引用了mysql-connector-java-6.0.3.jar.
    解决:使用5.x版本,eg:mysql-connector-java-5.1.38.jar,或更低版本
    记得改回原来的驱动名

    4.运行maven整合的ssm框架,出现

    nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/annotation/Around错误

    原因:差aspect,AOP

    解决:配置pom文件

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${org.springframework.version}</version>
    </dependency>

    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.6.11</version>
    </dependency>

    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.6.11</version>
    </dependency>

    5. ssm整合。

    nested exception is org.apache.ibatis.binding.BindingException: Parameter 'keyword1' not found. Available parameters are [arg1, arg0, param1, param2]

    原因:List<User> selectAll(String keyword1, String keyword2); 

     dao层方法参数没有注解。注意:是dao层(也有叫mapper层),在此添加注解.

    解决1:List<User> selectAll(@Param("keyword1")String keyword1, @Param("keyword2")String keyword2);

    解决2:<where>

     <if test="keyword1 !=null and keyword1 !='' and keyword1 != 'undefined'">

      loginName LIKE "%"#{arg0}"%"

    </if>

    <if test="keyword2 !=null and keyword2 !='' and keyword2 !='undefined'">

     AND state LIKE "%"#{arg1}"%"

    </if>

    </where>

    5.测试ssm框架访问数据,出现如下错误

    java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z is abstract

    解决方案:添加依赖(注意:不是c3p0数据源依赖,由于c3p0 版本太低造成,重新下载Maven依赖包

    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>

    6.Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1, param2]
    这个问题老是出现,最后发现想错了一件事。
    之前一直认为,只要mapper层下的接口方法参数,与mapper.xml文件接收的参数值相同,就可以,不用添加注解,无论参数个数有多少个,都可以映射。
    最后发现这个想法,是错误的。
    如果参数只有一个,上述说法正确,参数名只要一样即可;如果参数两个以上,则必须在参数上添加注解才可以。

    2019/04/10错误记录
    1.mybatis报错:A query was run and no Result Maps were found for the Mapped Statement

        仔细查看mybatis的配置文件,发现遗漏一个属性:resultType

       报错的配置是:<select id="ID"  parameterType="java.util.Map">

        正确的配置应该是<select id="ID" parameterType="java.util.Map" resultType="java.util.Map">

        最后总结下,就是mybatis中的所有查询,都必须返回resultType或者resultMap的值,否则就会报如上错误的。

     
  • 相关阅读:
    游标、动态sql、异常
    定义declare、%TYPE%、ROWTYPE、加循环
    存储过程
    游标
    异常
    常用的sql语句(转)
    MVC的理解
    模拟struts2
    结构化分析方法
    Maven常用命令
  • 原文地址:https://www.cnblogs.com/FondWang/p/10588336.html
Copyright © 2011-2022 走看看