JDBC 2.0新特性: 1、 Scrollability 滚动结果集:可双向支持绝对与相对滚动,对结果集可进行多次迭代。 结果集属性: ResultSetType | 说明 | TYPE_FORWARD_ONLY | (单向,一般不用)该常量指示指针只能向前移动的 ResultSet 对象的类型 | TYPE_SCROOL_INSENSITIVE | (双向、不敏感)可滚动但不受其他更改影响的 ResultSet 对象的类型 | TYPE_SCROLL_SENSITIVE | (双向、敏感)该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型 | CONCUR_READ_ONLY | (只读)该常量指示只可以读取的 ResultSet 对象的并发模式 | CONCUR_UPDATABLE | (可更新)该常量指示可以更新的 ResultSet 对象的并发模式 | 使用Con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);设置结果集的属性。
注:上句的 SCROLL 再到 CONCUR;不可以写反,编译器无法检测到,因为他们都是int类型的。 |
2、 Updatability 结果集可更新。(主要应用于桌面应用) - rs.updateString(“name”,”Tony”);//前面一个是字段的名字或者序号
- rs.updateInt(1,”122323”);修改
- rs.deleteRow();删除
- rs.updateRow();修改结果
注意只有在必要的时候(如桌面应用)才用结果集更新数据库,因为使用结果集更新数据库效率低下。 可更新结果集还要看数据库驱动程序是否支持,如Oracle就支持,MySql不支持。 并且只能针对一张表做结果集更新(不能子查询)。而且不能有join操作。 必须有主健,必须把所有非空没有默认值的字段查出。
处理可更新结果集时不能用select *来查询语句,必须指出具体要查询的字段。(不能使用通配符)
问题是红色字体部分,为什么不能用select * ??
|