怎樣解決無法獲取MYSQL欄位別名問題

2021-07-25 01:32:55 字數 1565 閱讀 4581

有客戶通過潤幹報表連線mysql資料庫,資料集語法使用了別名(例如select id as testid from test),但是在報表中無法通過別名獲取值。

通過jdbc直連測試各版本jdbc驅動測試,程式如下,

trystring 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())

<%=rs.getint("testid")%>

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。

解決無法獲取app動態空件的屬性

首先電腦上需安裝eclipse和sdk n name project name.就是在 eclipse 中建立的專案的名字。t target target id of the new project.required 這個 id是本機上 android targets的id 可以通過命令 andro...

解決無法刪除檔案 rm rf

使用lnmp或者wdcp建立的站點後刪除站點目錄無法刪除,甚至已經加了root許可權.解決辦法 執行 chattr i home wwwroot yoursite user.ini 路徑不同 你的檔名 yoursite 在進行刪除 chattr命令 有時候你發現用root許可權都不能修改某個檔案,大...

ubuntu 解決「無法獲得鎖

ubuntu系統的命令視窗下用apt get install安裝軟體的時會出現以下錯誤 無法獲得鎖 var lib dpkg lock open 11 資源暫時不可用 無法鎖定管理目錄 var lib dpkg 是否有其他程序正占用它?最可能的原因為 apt get程序並沒有結束而導致的!此時在命令...