我在用apache beanutils包对resultSet进行dyanbean转换时发现别名无法识别
数据库mysql 5.1 驱动版本 mysql-connector-java-5.1.7
跟踪代码时发现mysql的jdbc实现的ResultSetMetaData.getColumnName(int column)方法中是这样的
public String getColumnName(int column) throws SQLException {
if (this.useOldAliasBehavior) {
return getField(column).getName();
}
String name = getField(column).getNameNoAliases();
if (name != null && name.length() == 0) {
return getField(column).getName();
}
return name;
}
其中this.useOldAliasBehavior 在执行过程中是false,也就是说会执行String name = getField(column).getNameNoAliases();方法
按照字面意思理解是从field中取非别名的名称,而Field.getNameNoAliases()的实现如下:
public String getNameNoAliases() throws SQLException {
if (this.useOldNameMetadata) {
return getName();
}
if (this.connection != null &&
this.connection.versionMeetsMinimum(4, 1, 0)) {
return getOriginalName();
}
return getName();
}
其中this.useOldNameMetadata也是false,因为版本号是5.1.29(数据库返回的信息),造成
if (this.connection != null &&
this.connection.versionMeetsMinimum(4, 1, 0)) {
return getOriginalName();
}
可以正常执行,返回结果return getOriginalName();
因此无法正常拿到别名
table player
id
name
table user
id
player_id
name
执行sql代码如下:
select a.id, a.name ,b.name as bname from player a, user b where a.id = b.player_id
在mysql中执行为
id name bname
1 xx cc
2 aa bb
在java中运行,resultSet通过index获取没有问题,但是在resultSet.getMetaData的时候,通过metaData获取columnName时用Index获取字段名时就发现获取的字段为
id,name,name,完全获取的是originalName而不是想获取的别名
在hashMap中存取名称的时候就只剩下2个字段名id,name。
有哪位兄弟知道改怎么配置,是在mysql server 中配置还是在java端配置connect的属性?
分享到:
相关推荐
1. Type 1:纯Java驱动,也称为别名驱动。它依赖于ODBC桥,通过ODBC来与数据库通信,适合小型项目,但性能较低。 2. Type 2:混合型驱动,一部分是Java代码,另一部分是本地库(如C代码)。这种驱动比Type 1快,但...
MySQL驱动是用于连接MySQL数据库的一种中间件,它允许应用程序通过ODBC(Open Database Connectivity)标准与MySQL服务器进行通信。ODBC是一种数据访问接口,由微软公司开发,它为不同的数据库系统提供了一个统一的...
这个驱动在JMeter中扮演的角色与MySQL驱动类似,都是为了支持JMeter对SQL Server数据库的接口自动化测试。 将`jdbc-sqljdbc41.jar`添加到JMeter的`lib`目录后,用户可以通过配置JDBC Connection Configuration元素...
如果遇到这样的问题,尝试使用与WebSphere 8.5兼容的MySQL JDBC驱动程序版本。 5. 在完成数据源的基本设置后,需要点击“保存”来确保所做的配置被记录。 6. 接下来,需要点击刚才新建的MySQL JDBC提供者来进行...
MySQL驱动主要服务于MySQL数据库,这是一个开源、免费的关系型数据库管理系统。MySQL提供了多种语言的驱动,包括PHP、Python、Java(JDBC)、C++、Perl等。Java中的MySQL Connector/J是常用的JDBC驱动,它允许Java...
1.2020-开年标杆班-day05-MySQL上节回顾 10.2020-开年标杆班-day... 7.2020-开年标杆班-day05-MySQL-select 别名应用 8.2020-开年标杆班-day05-MySQL-select补充内容 9.2020-开年标杆班-day05-MySQL-show语句介绍
接着,指定包含MySQL JDBC驱动的jar包路径,然后完成设置。 **三、配置数据源** 1. 在新建的JDBC提供程序上,选择“数据源”>“新建”。 2. 提供数据库连接信息,如数据源名和JNDI(Java Naming and Directory ...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集...
在本文中,我们将探讨如何使用Delphi 7.0连接到MySQL 5.0数据库,主要涉及使用ODBC(Open Database Connectivity)驱动程序和ADO(ActiveX Data Objects)技术。Delphi 7是一款历史悠久但仍然被广泛使用的集成开发...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集...
数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集...
3. **MySQL Connector/ODBC 配置**:安装完成后,需要在 ODBC 数据源管理员中创建一个新的系统 DSN 或用户 DSN,选择 MySQL Connector/ODBC 作为驱动程序,并输入相应的 MySQL 服务器信息。 4. **MATLAB 与 MySQL ...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. ...
而"mysql-connector-java-5.1.35.jar"是MySQL官方提供的JDBC驱动,用于连接Java应用程序和MySQL数据库。 1. **MyBatis框架**:MyBatis提供了一种动态的SQL和映射机制,允许开发者在XML或注解中编写SQL,将SQL语句与...
9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集...
2. **mysql.jar** - 这个文件可能是旧版MySQL JDBC驱动的别名,通常应该是`mysql-connector-java.jar`。它是连接MySQL数据库所需的JDBC驱动,允许Java应用与MySQL服务器交互。在新的MySQL版本中,推荐使用的是`mysql...