这是我的查询以及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,那么它就会正常执行...我究竟做错了什么?在此先感谢。
答案 0 :(得分:0)
'product_description'是列名 - 而不是表名。你显然要么没有这样的列,要么名字有错误。
答案 1 :(得分:0)
试试这个:
(with-input-from-request "https://stackoverflow.com" #f read-string)