怎样解决无法获取MYSQL字段别名问题

有客户通过润乾报表连接mysql数据库,数据集语法使用了别名(例如select id as testid from test),但是在报表中无法通过别名获取值。

通过jdbc直连测试各版本jdbc驱动测试,程序如下,

<%

try

{

String driverName="com.mysql.jdbc.Driver";

String userName="root";

String userPasswd="";

String dbName="test";

String tableName="user";

String url="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd;

Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conn=DriverManager.getConnection(url);

String sql="select id as testid from num";

Statement stmt=conn.createStatement();

ResultSet rs=stmt.executeQuery(sql);

ResultSetMetaData   rsmd   =   rs.getMetaData();

String colname= rsmd.getColumnName(1) ;

String colname1= rsmd.getColumnLabel(1) ;

System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaa="+colname);

System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaa="+colname1);

while(rs.next())

{

%>

<tr>

   <td><%=rs.getInt("testid")%></td>

</tr>

<%

}

rs.close();

stmt.close();

conn.close();

}

catch(Exception e)

{

e.printStackTrace();

}

%>,

发现使用jdbc5.1.x系列驱动getColumnName获取的不是别名。

使用润乾报表连接mysql数据库时如果用到别名,可以通过使用5.0.x系列及以下驱动解决不能获取别名的问题。

附jdbc驱动与Mysql版本对应关系:

Connector/J 5.1 支持Mysql 4.1、Mysql 5.0、Mysql 5.1、Mysql 6.0 alpha这些版本。

Connector/J 5.0 支持MySQL 4.1、MySQL 5.0 servers、distributed transaction (XA)。

Connector/J 3.1 支持MySQL 4.1、MySQL 5.0 servers、MySQL 5.0 except distributed transaction (XA) support。

Connector/J 3.0 支持MySQL 3.x or MySQL 4.1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值