1)Invalid operation for the current cursor position.错误信息提示
原因是返回的ResultSet对象的游标还在数据集的最上方,需要加一句:rs.next()!
2)数据操作要严紧所有声明的对象用完后要关掉,不然以后程序可能慢慢死掉:
rs.close();
stmt.close();
conn.close();
3)在执行数据库插入,删除,修改操作时最好要用事务操作:
在插入,删除,修改代码前先把自动提交设为false;
引用java的API文档:
void setAutoCommit(boolean autoCommit) throws SQLException
commit
方法或 rollback
方法为止。默认情况下,新连接处于自动提交模式。
提交发生在语句完成时。语句完成的时间取决于 SQL 语句的类型:
CallableStatement
对象或者返回多个结果的语句,语句在所有关联结果集关闭并且已获得所有更新计数和输出参数时完成。注:如果在事务和自动提交模式更改期间调用此方法,则提交该事务。如果调用 setAutoCommit
而自动提交模式未更改,则该调用无操作(no-op)。
autoCommit
- 为 true
表示启用自动提交模式;为 false
表示禁用自动提交模式SQLException
- 如果发生数据库访问错误,在参与分布式事务的同时调用 setAutoCommit(true),或者在关闭的连接上调用此方法getAutoCommit()
conn.setAutoCommit(true);
原文:http://www.cnblogs.com/Roysatm/p/4972757.html