为何用java调用mysql中表的列名(rs.getString("column_name"))出错? 不是的,如果是那样子,我早就查出原因来了。就拿Mysql自带的mysql/user表来说吧,用rs.getString("User")也打不开呀!但是用getString(2)就一定能打开,实在是弄不明白啊!这问题困扰我好多日子了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵!我没那么苯啦!因为怕自己写的表有问题,就用了mysql自带的数据库,可惜还是搞不定:( java.sql.SQLException: Column 'User' not found.就这么一条错误信息,就是找不到列:(但是getString(2)就没问题……气死了 是不是列名前面要加表名比如"[YourTable].User" 楼上说的对,可能是这个原因,MySql好象有这个问题! 加表名?不行的,ResultSet.getString(String columnName)看看上面这句就知了,不过我还是试了一下,仍然不行。别人提供的程序源码都是写成getString(String columnName);说明这样用是可以的,为何我这就是行不通呢?太可恨了! 呵呵,追求新鲜的我怎么会用旧的东西?mysql最新的两个版本我都试过了,还有驱动,我都是从mysql主站随时下载最新版。没办法喽,只好先用index啦!谢谢! 贴出代码来,既然是mysql自带的表,我也可以看看是什么错误,大家也好测试。 代码如下,驱动包就要去www.mysql.com下载了。import java.sql.*;public class test{public static void main(String []args){Connection con;Statement stmt;ResultSet rs;String url ="jdbc:mysql://localhost/mysql?user=arron&password=yangwei&useUnicode=true&characterEncoding=GBK";try{ Class.forName("org.gjt.mm.mysql.Driver").newInstance();}catch(ClassNotFoundException e){ System.out.println(e.toString());}catch(InstantiationException e){ System.out.println(e.toString());}catch(IllegalAccessException e){ System.out.println(e.toString());}try{ con=DriverManager.getConnection(url); if(con!=null){ stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=stmt.executeQuery("select * from michele"); while (rs.next()) { String s = rs.getString(1); String f = rs.getString(2); System.out.println(s+f); /*以下是失败调用 *String s=rs.getString("Host"); *String f=rs.getString("User"); */ } stmt.close(); con.close(); } else System.out.println("无效的连接");}catch(SQLException e){System.out.println(e.toString());}}} jsp+mysql有很多人用啊!真的没有人遇到过这种问题吗? 这样将sql更改select dbname.User as user,dbname.Host as host from michele 不行啊!!对了,上面的程序里michele改为user 昨天有朋友提示,说可能在win2k下有问题,但是在unix/linux下就运行顺利,可惜我的机器因为分区问题,装不上linux。请有条件的人帮帮忙,谢谢 现在终于知道论坛之间的差别了,呵呵,在javaranch找到了答案,应该是windows版的mysql本身的问题,在linux下就一切顺利。谢谢大家 用JAVA编写一个股票大盘显示程序 一个小问题,this和 类名.this有什么不同 比如选择2007/10月,如何计算2007年截止到10月31号的天数 打开多窗口程序的时候,怎么在打开另一个的时候隐藏前一个? 帮忙点击下 哪位朋友能提供点 JAVA I/O流的资料? 200分求解一问题,解决后另开贴给分,决不食言 sohu佛山站招聘软件工程师 这种写法合理不???? 超级困惑,为什么我用javamail无法通过身份验证!!!(付源码) SOCKET 服务端程序获取客户端传来的BYTE流 如何获取其长度 求助,JBUILDER中调试RMI例程出错,附源码
因为怕自己写的表有问题,就用了mysql自带的数据库,可惜还是搞不定:(
比如"[YourTable].User"
import java.sql.*;
public class test{
public static void main(String []args){
Connection con;
Statement stmt;
ResultSet rs;
String url ="jdbc:mysql://localhost/mysql?user=arron&password=yangwei&useUnicode=true&characterEncoding=GBK";try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
}catch(ClassNotFoundException e){
System.out.println(e.toString());
}catch(InstantiationException e){
System.out.println(e.toString());
}catch(IllegalAccessException e){
System.out.println(e.toString());
}
try{
con=DriverManager.getConnection(url);
if(con!=null){
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery("select * from michele");
while (rs.next()) {
String s = rs.getString(1);
String f = rs.getString(2);
System.out.println(s+f);
/*以下是失败调用
*String s=rs.getString("Host");
*String f=rs.getString("User");
*/
}
stmt.close();
con.close();
}
else System.out.println("无效的连接");
}catch(SQLException e){System.out.println(e.toString());}
}
}
真的没有人遇到过这种问题吗?
select dbname.User as user,dbname.Host as host from michele