找不到Mysql表

时间:2017-07-28 17:39:13

标签: java mysql

这是我的查询以及java代码..

 public ArrayList getProductinfo(int id){

     try{
        String query="SELECT product_name,product_description FROM product WHERE category_id = "+id;
        statement = connect.createStatement();
        result = statement.executeQuery(query);
        System.out.println("Successfull Query for info..");
    }catch(Exception e){
        System.out.println("Error in Query..");
        e.printStackTrace();
    }
     ArrayList<String> columnName = null;
    try{
        columnName = new ArrayList<String>();
         for(int i = 1 ; i <= result.getMetaData().getColumnCount(); i++){
                columnName.add(result.getMetaData().getColumnName(i));
            }
    }catch(Exception e){
        e.printStackTrace();
    }
    return columnName;

}

从这一个调用了这个函数:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:

         jTable1.removeAll();
    jTable1.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] {
},
null
));

    DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    MyDatabaseHandler db=new MyDatabaseHandler();
    db.setConnection(null, null, null);
    ArrayList content=db.getProductinfo(1);
    model.addColumn("Image");
    model.addColumn("Description");
    Object[] rows=new Object[2];
    ResultSet result=db.getRset();

    try{
       while(result.next()){
           String ss="";

           int m=0;

          for(Object c : content){
              m++;
              if(m==1){
                  //rows[0]=result.getBlob(c.toString());
                  rows[0]=result.getString(c.toString());
              }else if(m==2){
                  ss+="Name:"+result.getString(c.toString()+"\n");
              }else if(m==3){
                  ss+="Description:"+result.getString(c.toString()+"\n");
              }else if(m==4){
                  ss+="Price:"+result.getString(c.toString()+"\n");
              }else if(m==5){
                  ss+="Quantity:"+result.getString(c.toString());
              }
          } 
          rows[1]=ss;
            //System.out.println(ss);
            model.addRow(rows);
        }
   }catch(Exception e){
        e.printStackTrace();
    }
}           

这应该在cmd中执行,但每当我从java类运行它时它会给我这个错误:

java.sql.SQLException:Column'product_description' not found

注意:这个查询在cmd中运行得很好,列product_description就在那里,拼写没有错误。如果我只在SELECT字符串之后给出一个列名,例如SELECT product_description,那么它就会正常执行...我究竟做错了什么?在此先感谢。

2 个答案:

答案 0 :(得分:0)

'product_description'是列名 - 而不是表名。你显然要么没有这样的列,要么名字有错误。

答案 1 :(得分:0)

试试这个:

(with-input-from-request "https://stackoverflow.com" #f read-string)