查询语句多写一个,java的Recordset和asp的RecordSet不一样,不能直接求出记录个数。第二种方法是在循环中设一变量i,在循环中求i++即可
解决方案 »
- 怎样将一个简单程序图形化?
- 运行在不同jre下的class如何进行方法调用
- JTable的刷新方法怎么写
- 请问屏幕上为何什么都没有
- 超级简单问题,在线等.数组数据类型转换
- 请问Java中如何进行矩阵乘法?
- 旧年散分,新年结.外加贡献火车票 29日吉林--北京.
- 关于JAVA和C++的区别,请各位指教。
- 高手快来,关于生成jar文件出错的问题.
- 从JFileChooser中得到选择的目录,比如c:\temp\java,因为创建File目录在window环境下,需要变成c:\\temp\\java,怎么办?想了想没有太好
- 应该如果复制ResultSet数据集合中的一个片段?
- java中表示时间的类型是什么?
2。每次都循环,效率会不会太低了?
有没有更好的方法,我查了半天,java 中居然没有rs.recordcount类是
的写法
int numberOfRows = rs.getRow();
int numberOfRows = rs.getRow();
出错:
org.apache.jasper.JasperException: Result set type is TYPE_FORWARD_ONLY
请教回复人: crazyyoung(浪淘沙) ( ) 什么原因?
小弟刚学jsp,还请各位高手指点
另外:我的
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
定义为滚动数据集,应该可以用rs.last()的,
我用jsp+javabean实现的,stmt在javabean 中定义。
conn.createStatementResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//opendb.java
package opendb;
import java.sql.*;public class opendb {
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:711";
Connection conn=null;
ResultSet rs=null; public opendb() {
try
{
Class.forName(sDBDriver);
}
catch (java.lang.ClassNotFoundException e)
{
System.err.println("opendb():"+e.getMessage());
}
} public ResultSet executeQuery(String sql) {
rs=null;
try
{
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch (SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
}
//query.jsp
<%@ page language = "java" import = "java.sql.*" %>
<jsp:useBean id = "work" class = "opendb.opendb" scope = "page"/><html>
<body>
<!--INPUT TYPE="text" NAME="zx01" -->
<!-- INPUT TYPE="submit" name = "submit" value = "query" -->
<TABLE>
<TR>
<TD>zx01</TD>
<TD>zx03</TD>
<TD>zx04</TD>
</TR>
<%
String mysql;
// String zx01 = request.getParameter("zx01");
mysql = "select zx01,zx03,zx04 from zx_file where zx01 matches 'it*' ";
out.println(mysql);
ResultSet rs1 = work.executeQuery(mysql);
rs1.last();
int numberOfRows = rs1.getRow();
// out.println(numberOfRows);
while(rs1.next())
{
%>
<TR>
<TD><%out.println(rs1.getString("zx01"));%></TD>
<TD><%out.println(rs1.getString("zx03"));%></TD>
<TD><%out.println(rs1.getString("zx04"));%></TD>
</TR>
<%
}
rs1.close();
%>
</TABLE>
</body>
</html>
2.遍历记录集
{
i=0;
while(rs.next())
{
i++;
}
rs.frist(); //复位
return i;
}在jsp里调用即可 int count=work.countnum();