Java连接MySQL数据库报错 java.sql.SQLException: Column 'xxxx' not found.问题解决

一、问题

Java 执行 SQL 语句时,报错 java.sql.SQLException: Column 'user_name' not found.
但是在数据库客户端执行语句没有此问题。SQL语句如下:
select id,user_name as name from user

二、环境

数据库版本:MySQL 5.1
JDBC驱动:mysql-connector-java 5.1.48
连接池配置:

driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxxx?useSSL=false&characterEncoding=utf8
username: xxxx
password: xxxx

三、解决方案

原因是 Java 无法使用 MySQL 别名(as xxx)获取列,需要在连接池配置 url 加上 useOldAliasMetadataBehavior=true
也就是:

url: jdbc:mysql://localhost:3306/xxxx?useSSL=false&characterEncoding=utf8&useOldAliasMetadataBehavior=true

你可能感兴趣的:(Java)