日期:2014-05-20  浏览次数:20841 次

Column '' not found .但是表里明明有。初学者,整一晚上了,在线等
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class dic {
public static void main(String[] args){
            try{
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "bjzhao04200526");
String sql = "select mean from tb_dic where word = 'pig' ";
Statement statement = conn.createStatement();
ResultSet res = statement.executeQuery(sql);
while(res.next()){
String spell = res.getString("word");
String mean = res.getString("mean");
System.out.println(spell + " 的意思是: " + mean);
}

}catch(SQLException e){
e.printStackTrace();
}
}
}
程序运行老是显示String spell = res.getString("word");这一句出错:Column 'word' not found
把后面改成res.getString(1)可以,但是显示的是后面的mean部分,改成res.getString(2)就说超过了
但是表中明明有,用的MySQL:

mysql> use test;
Database changed
mysql> create table tb_dic(
    -> id int auto_increment primary key,
    -> word varchar(30) not null,
    -> mean varchar(30) not null);
Query OK, 0 rows affected (0.01 sec)

mysql> select * from tb_dic;
+----+-------+------+
| id | word  | mean |
+----+-------+------+
|  4 | pen   | 笔     |
|  5 | apple | 苹果    |
|  6 | card  | 卡片    |
|  7 | pig   | 猪     |
|  8 | dog   | 狗     |
+----+-------+------+
5 rows in set (0.00 sec)

mysql>

------解决方案--------------------
String sql = "select mean from tb_dic where word = 'pig' ";
select mean from tb_dic 只拿出了一列,当然取不到第二列了