用java编程,条件查询mysql的数据表
代码如下:
public Object[] getData(String data) throws SQLException{

//通过id得到行数据
String sql  =  "select * from speciesinfo where id = 'data'" ; 
ResultSet rs=con.executeQuery(sql); ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData();
//读取数据表中的列数     
int numberOfColumns = rsmd.getColumnCount();                
Object[] object=new Object[numberOfColumns];
System.out.println(rs.next()); //读取数据库表中当前行中指定列的值
while (rs.next()){
for(int i = 0; i<numberOfColumns; i++){ 
object[i] = rs.getObject(i+1);     //因为数据库字段的索引从1开始,而非0开始,所以用i+1 
System.out.println(rsmd.getColumnLabel(i+1)+"="+object[i]);
        }
}

    System.out.println("========================");
return object;
}方法调用是这么写的 getData('pinus1')执行时没有结果输出,调试后,发现输出的rs.next()为false。各位帮忙看一下,是哪里写错了?我自己觉得是sql语句写错了,但不知道怎么写才是对的,也请教下各位?万分感谢。

解决方案 »

  1.   

    "select * from speciesinfo where id = 'data'"
    在MYSQL中运行是否有结果,DATA为变量还是值?
      

  2.   

    估计就是这句错了,"select * from speciesinfo where id = "& data &""
      

  3.   

    假设为数字型
    "select * from speciesinfo where id = "& data 
      

  4.   

    data是变量,要将pinus1这个值传进去。我按2楼和3楼的写,eclipse提示语句的写法是错的。
      

  5.   

    String sql  =  "select * from speciesinfo where id = '"+data+"'" ;  
      

  6.   

    针对上面的代码在问个问题,调试时rsw.next()输出的结果是true,但是程序并没有执行while(ra.next())这个代码段,我找不出原因,各位帮忙解答一下,谢谢、