who can tell me why?
程序执行后老是抛出“列名错误”,调试了很长时间还这样!真是郁闷死了!请各位大侠帮小弟解决一下!谢了!
import java.sql.*;
import javax.sql.rowset.*;
public class TestRowSet {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
CachedRowSet rowset = new com.sun.rowset.CachedRowSetImpl();
rowset.setUrl("jdbc:mysql://localhost:3306/storedb");
rowset.setUsername("root");
rowset.setPassword("123");
rowset.setCommand("select name,age,address from customers;");
rowset.execute(); //execute()方法负责建立数据库连接,执行查询语句,填充行集,然后关闭数据库连接
rowset.setTableName("customers");//行集的查询结果来自于ResultSet,需显式设置待查询表的表名
rowset.moveToInsertRow();
rowset.updateString("name","xiaohuang");
rowset.updateInt(2,34);
rowset.updateString(3,"jiangsu");
rowset.insertRow();
rowset.moveToCurrentRow();
rowset.acceptChanges();
}
}
customers:
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| ID | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(16) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
| address | varchar(255) | YES | | NULL | |
+---------+--------------+------+-----+---------+----------------+
java.sql.SQLException: 列名无效
at com.sun.rowset.CachedRowSetImpl.getColIdxByName(CachedRowSetImpl.java:1601)
at com.sun.rowset.CachedRowSetImpl.getObject(CachedRowSetImpl.java:2985)
at com.sun.rowset.internal.CachedRowSetWriter.insertNewRow(CachedRowSetWriter.java:766)
at com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowSetWriter.java:313)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:831)
at TestRowSet.main(TestRowSet.java:35)
Exception in thread "main" javax.sql.rowset.spi.SyncProviderException: 列名无效
at com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:858)
at TestRowSet.main(TestRowSet.java:35)