问个初级问题啊,在用jdbc时,就是那个resultSet结果集得到某个字段值只能得到一次吗。
比如 .........
.
.
resutSet rs=stm.excuteQuery(sql);
while(rs.next)
{
System.out.print(rs.getString(0)); //第一次取值可以,正常
System.out.print(rs.getString(0)); //这里出现异常,提示no data found
} 请问大侠们,为什么,小弟研究的不深,请指教,祝大家周末愉快。。
比如 .........
.
.
resutSet rs=stm.excuteQuery(sql);
while(rs.next)
{
System.out.print(rs.getString(0)); //第一次取值可以,正常
System.out.print(rs.getString(0)); //这里出现异常,提示no data found
} 请问大侠们,为什么,小弟研究的不深,请指教,祝大家周末愉快。。
解决方案 »
- MyEclipse下SSH框架搭建
- 关于ssh框架spring的作用问题
- socket 收发数据问题(请各位大虾看详细描述)
- 如何在struts中实现数据在当前页显示
- TOMCAT 出错
- 60分求,MyEclipse 5.0 安装后eclipse无法新建任何一项目,文件。
- 什么是门户什么是工作流啊?
- 请问上传EXCEL文件这个怎么传给类
- EJB 实体Bean Serailize和DeSerialize问题
- action接收jsp页面参数为何全部为“on”
- 求助!!!tomcat运行jsp刷新主页就会有几十个连接连mysql,请大大们指出问题所在
- 关于用Hibernate插入记录的问题 急!!!
楼主可以更换为jtds的驱动
如 MySQL、Oracle 驱动并没有这个限制,可以反复地读。我记得 SQL Server 2000 好像就不行,原来试过
现在也没 SQL Server 了,没办法测试。import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class Replacement {
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null; try {
con = getConnection();
String sql = "SELECT * FROM emp";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
System.out.println(rs.getString(3));
System.out.println(rs.getString(2));
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
} finally {
rs.close();
ps.close();
con.close();
}
} catch(SQLException e) {
e.printStackTrace();
}
}
private static Connection getConnection() throws SQLException {
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "110908";
return DriverManager.getConnection(url, user, password);
}
}
rs.getString(3)
rs.getString(2)
rs.getString(1)
其中type有如下几个值:
ResultSet.TYPE_FORWORD_ONLY:rs的游标只能向下移动。
ResultSet.TYPE_SCROLL_INSENSITIVE:rs的游标可以上下移动,当数据库变化时,结果集不变
ResultSet.TYPE_SCROLL_SENSITIVE:rs的游标可以上下移动,当数据库变化时,结果集同步改变
1 0没有数据,从1开始
2 如果不允许读第二次,请更新jdbc驱动
Type 的类型 :
ResultSet.TYPE_FORWORD_ONLY:rs的游标只能向下移动。
ResultSet.TYPE_SCROLL_INSENSITIVE:rs的游标可以上下移动
默认是第一种的。
String a=rs.getString(0);
int b=rs.getInt(1);
System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);System.out.println(a);