- 浏览: 16163 次
- 性别:
- 来自: 南宁
文章分类
最新评论
从mysql-connector-java-5.0.8-bin.jar升级到mysql-connector-java-5.1.18-bin.jar后,当select语句用到别名的时候报错:Column ×× not found 。
经查原因如下(转自ITEYE的xubindehao兄):
用apache beanutils包对resultSet进行dyanbean转换时发现别名无法识别
跟踪代码时发现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();
因此无法正常拿到别名。
可怜xubindehao兄问了良久没有得到有效解决方案,今天受他启发,终于找到办法了,已在他博客后留言相告。
解决方案如下:
连接串加参数:useOldAliasMetadataBehavior=true
示例:
url="jdbc:mysql://10.60.32.80:3306/paper2?characterEncoding=utf-8&useOldAliasMetadataBehavior=true"
ps:这个连接串配置在tomcat/conf/context.xml里面的Resource节点(此条给新手看)。
经测试已经解决了别名问题,希望对大家有帮助。
本文出自 “踏歌时代研发中心” 博客,请务必保留此出处http://targtime.blog.51cto.com/4832227/943295
经查原因如下(转自ITEYE的xubindehao兄):
用apache beanutils包对resultSet进行dyanbean转换时发现别名无法识别
跟踪代码时发现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();
因此无法正常拿到别名。
可怜xubindehao兄问了良久没有得到有效解决方案,今天受他启发,终于找到办法了,已在他博客后留言相告。
解决方案如下:
连接串加参数:useOldAliasMetadataBehavior=true
示例:
url="jdbc:mysql://10.60.32.80:3306/paper2?characterEncoding=utf-8&useOldAliasMetadataBehavior=true"
ps:这个连接串配置在tomcat/conf/context.xml里面的Resource节点(此条给新手看)。
经测试已经解决了别名问题,希望对大家有帮助。
本文出自 “踏歌时代研发中心” 博客,请务必保留此出处http://targtime.blog.51cto.com/4832227/943295
发表评论
-
spring mvc 整合activiti 5.21
2017-11-27 10:58 0spring mvc 整合activiti 5.21 ... -
Maven 环境搭建
2017-11-03 15:54 455http://www.cnblogs.com/quanyong ... -
js url 传递中文参数,后台获取出现乱码
2017-10-23 08:58 0js url 传递中文参数,后台获取出现乱码,可以通过在后台这 ... -
session 和cookier的理解
2015-05-11 13:37 0session<会话需要> 和cookier< ... -
redis 在linux下的安装使用步骤
2015-05-05 09:44 01.网上下载redis-2.8.10.tar.gz文件 2.进 ... -
WSDL2JAVA 生成Stub文件以及调用
2015-04-15 15:58 0Step 1: 设置AXIS的环境变量 AXIS2_HOME ... -
webService 的使用方式之RPC方式、stub方式
2015-04-15 14:28 0/** * 创建日期 2015年4月14日 */ pack ... -
java多线程例子三种形式之一(最常用的,继承Thread的方式)——没有返回值、不可抛异常
2015-03-26 15:30 0/** * 功能说明:多线程例子测试, 实现继承Thread ... -
java多线程例子三种形式之一(最常用的,实现runable的方式)--没有返回值,不可抛异常
2015-03-26 15:25 0/** * 功能说明:多线程例子测试, 实现runnable ... -
性能测试调优
2015-03-12 13:49 0性能调优是一个宏大的工程,需要从宏观架构(比如拆分,冗余,读写 ... -
性能测试调优
2015-03-12 13:48 0性能调优是一个宏大的工程,需要从宏观架构(比如拆分,冗余,读写 ... -
2014.4.22(广州悦信无线科技有限公司)
2014-04-22 22:46 0笔试: 1.java基本数据类型,是什么?String是不是基 ... -
2014.4.21(地球村计算机软件)
2014-04-21 16:05 0初试: 1.填写个人履历表 2.数据挖掘方面的是否做过(其实p ... -
2014.04.17(一指通面试)
2014-04-17 23:06 01.自我介绍 2.最近做的项目 3.什么是struts 4.什 ... -
原型设计工具、uml常用建模工具
2014-04-14 22:41 0常用原型设计:Word、Visio(拓扑图、系统总体架构图)、 ... -
2014-04-15(广州中大凯旋信息科技有限公司)
2014-04-14 20:01 0中软:public等几个范围的区别和用法,考视图,管理表查询 ... -
Java 堆和栈的理解、程序的执行过程
2014-03-05 15:37 0程序执行的过程 程序从硬盘载入的内存->有四个内存区供程 ... -
java基础之基本数据类型
2014-02-28 10:50 0java基本数据类型就8种 ... -
java 对文件夹下指定后缀名的读写操作(运用递归的案例)
2014-07-21 22:00 1259package test; import java.io.B ... -
单例模式懒汉模式线程安全问题解决方法
2014-02-17 16:22 1358饿汉式会有效率的问题,即加载类时就会创建那个静态对象,会占据一 ...
相关推荐
在本压缩包中,提供了两个不同版本的JDK:1.4和1.7,它们分别代表了Java发展过程中的两个重要时期。 **JDK 1.4:** JDK 1.4是在2002年发布的重要版本,它的出现极大地增强了Java的性能和功能。这个版本引入了一些...
**Java Development Kit (JDK) 1.4:历史、特性与重要性** JDK(Java Development Kit)是Oracle公司发布的用于开发Java应用程序的软件开发工具包,它包含了编译器、调试器、文档和Java运行环境等必要组件。JDK 1.4...
**JDK 1.4 老版本:深入理解早期Java开发环境** 在Java发展历程中,JDK 1.4是一个重要的里程碑,它为后来的Java版本奠定了基础。这个版本发布于2003年,是Java SE(标准版)的一个关键迭代,引入了许多新特性并优化...
JDK 1.4是Java历史上的一个重要版本,发布于2004年,它是Java 2平台标准版(J2SE)的一部分。在这个版本中,Java引入了许多新的特性和改进,对于Windows操作系统用户来说,这个版本的JDK在当时的软件开发环境中扮演...
总结,JDK 1.4绿色免安装版是一个便捷的开发工具,尽管已经有些许年代,但它仍能在旧的项目或特定环境中发挥价值,特别是对于需要兼容旧代码或研究历史版本特性的开发者来说,是一个不可或缺的资源。同时,其引入的...
JDK1.4,全称Java Development Kit Version 1.4,是Java编程语言历史上的一个重要版本,由Sun Microsystems(现已被Oracle公司收购)于2002年2月13日正式发布。这个版本在Java平台上引入了许多关键性的改进和新特性...
jdk1.4非安装版,可直接在MyEclipse等IDE工具导入jdk相应的版本。希望对你们有用处。
总的来说,JDK 1.4免安装版是Java开发者的一个便利工具,特别是对于需要在旧项目或特定环境中使用JDK 1.4的开发者,它提供了一个快速部署和使用的途径。尽管当前版本已经较为陈旧,但了解其特性和改进对于理解Java的...
不过,仍有一些老项目可能依赖于JDK 1.7,因此兼容性问题需要在升级前仔细评估。 总结,JDK 1.7是Java发展历程中的一个重要里程碑,它的特性改进显著提升了开发效率和代码质量。对于仍在使用Java 7的开发者,理解...
替换至%java_home%/jre/lib/security 下,覆盖即可
JDK1.4是Java开发工具包的一个重要版本,它在Java发展历程中扮演了关键角色。这个版本发布于2002年,带来了许多新的特性和改进,为后续版本奠定了基础。在此源代码中,我们可以深入理解Java语言的实现细节,以及Java...
JCE无限制权限策略文件,下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。将两个jar文件放到%JDK_HOME%\jre\lib\security下覆盖原来文件,记得先备份
这六个jar文件组合在一起,构成了一个完整的JSON处理环境,特别适合基于JDK1.4的项目使用。通过这些库,开发者可以轻松地在Java程序中解析、创建和操作JSON数据,从而实现与服务器或其他应用程序之间的数据交换。...
JDK 1.4是Java编程语言的一个重要版本,由Sun Microsystems在2003年发布。它包含了Java运行环境(Java Runtime Environment, JRE)以及开发工具,如Java编译器(javac)、Java应用程序启动器(java)和Java文档生成...
标题“axis2 jdk1.4用jar”指的是在Java Development Kit (JDK) 1.4环境下使用Apache Axis2的特定版本,因为Axis2是一个基于Java的Web服务框架,它允许开发人员创建、部署和管理Web服务。在这个场景中,可能是指一个...
之前好些人找我要1.4linux版本,现在分享出来
**JDK 1.4中文开发手册**是Java开发者的重要参考资料,它详尽地阐述了JDK 1.4版本中的各种特性和API。JDK(Java Development Kit)是Java编程语言的核心工具集,包含了编译器、调试器、文档生成工具以及Java运行时...
JDK 1.4,也常被称为 JDK 4,是Java平台的一个重要版本,由Sun Microsystems在2002年发布。这个版本引入了许多关键特性,提升了Java语言的性能、稳定性和安全性,为后续的Java版本奠定了基础。"绿色版本"通常指的是...