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://blog.csdn.net/qq_37969433/article/details/79849823相关文章
- httpclient开启代理,获取java中请求的url
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
- 从 JDK 8 到 JDK 18,Java 垃圾回收的十次进化
- Java RESTful Web Service实战(第2版) 2.2 资源定位
- [转]java.sql.SQLException: 无效的列索引
- 第43节:Java学前要点
- 《Java和Android开发学习指南(第2版)》——第2章,第2.3节基本类型
- 基于Java+SQL Server开发(PC)学生管理系统【100010054】
- 用Java连接SQL Server2000数据库的两种方法与jDTS
- Java学习-057-Jsoup爬虫获取中国所有的三级行政区划数据(二),并生成数据库 SQL 脚本插入语句
- Java学习-018-EXCEL 文件写入实例源代码
- java.sql.SQLException: No suitable driver(解决)
- Java多线程之Join方法阻塞线程
- Java集合篇:LinkedList源码分析
- java下载word文档docx
- Java高手速成│Java程序怎样和数据库对话
- java方法:flush()
- java heap space以及jvisualvm.exe 工具
- 代码重构----使用java有限状态机来消除太多的if else判断
- Java新手入门200例124之用JDBC连接Mysql数据库
- SQL Developer 4.0 启动报错“unable to create an instance of the java virtual machine located at path”