• java执行sql语句使用别名时显示Column '***' not found


    java执行sql语句使用别名时显示Column ‘*’ not found

    在做一个小项目时遇到个问题,执行sql语句使用别名时总是报sql异常 Column ‘*’ not found,折腾半天终于找到了原因,下面是具体的错误,如果大家遇到同样的问题在找解决方法,可直接跳过看最后的解决方法。

    问题描述

    我在本地使用的是java、mysql、tomcat
    服务器上的数据库为MariaDB(完全兼容MySQL)
    在服务器上MariaDB中建立test数据库,新建student表如下
    这里写图片描述
    执行sql语句 select name as id , age as StuAge from student 带有as设置别名

    在本地发布工程,连接服务器上的数据库,可以正常执行
    这里写图片描述
    而把工程原封不动的发布在服务器上,却获得不了数据,查看日志报一下异常:
    这里写图片描述
    两次测试用的是同一个数据库,问题应该不会出在MariaDB的配置上,对此也做了个小验证:
    这里写图片描述
    正常获得数据,猜测没错。

    那么,异常的原因肯定就出在tomcat的配置或服务器自身了,服务器是租的成熟的云服务器,问题应该不大。先从tomcat下手。

    找了半天,终于发现了本地和服务器上的tomcat的不同,使用tomcat连接池,tomcat/lib下mysql-connector-java版本不同! 服务器上为5.1.14,本地为3.1.12。百度了下两个版本,确实有类似的问题!

    解决方法一

    简单粗暴,直接把服务器的驱动版本换为3.1.12(只测试过这个版本可行,其他不确定),去下载

    解决方法二

    在连接池配置中,url加以下内容:

    …:3306/test?characterEncoding=UTF-8&useOldAliasMetadataBehavior=true

    如图:
    这里写图片描述

    注意在xml中&要用&代替,不能有空格!

    亲测以上方法都可用!

    参考https://www.2cto.com/database/201507/414486.html

    原文地址:https://blog.csdn.net/qq_37969433/article/details/79849823
  • 相关阅读:
    uva 10129
    年化利率
    house买房原理,2019,第一版
    car二手车购买原理
    car购车翻译篇
    car配置篇
    健身原理
    语法学习,从句
    语法学习,简单语句
    名词解释
  • 原文地址:https://www.cnblogs.com/jpfss/p/11162429.html
Copyright © 2020-2023  润新知