多谢你啊package search;import java.sql.*;public class date
{
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:url";
private Connection conn = null;
private Statement stmt = null;
ResultSet rs = null;
//<!--注册数据库驱动程序-->
public date()
{
try
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("date():" + e.getMessage());
}
}

//建立数据库连接及数据查询
public ResultSet executeQuery(String sql)
{
rs = null;
try
{
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                            ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:" + ex.getMessage());
}

return rs;
} //定义数据操作
public void executeUpdate(String sql)
{
//rs = null;
try
{
if(conn == null)conn = DriverManager.getConnection(sConnStr);
if(stmt == null)stmt = conn.createStatement();
stmt.executeUpdate(sql);
//stmt.close();
//conn.close();
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:" + ex.getMessage());
}
} //关闭数据库连接
public void closeStmt()
{
try
{
stmt.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
} public void closeConn()
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
date da = new date();
String mess = "数学";
String select = "select url from urlrecord where url like '%" + mess + "%'" ;
ResultSet rs = da.executeQuery(select);
try
{
while(rs.next())
{
System.out.println(rs.getString("url"));
}

}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}

解决方案 »

  1.   

    检查是否有ResultSet、Statement在使用完后没有close()的地方
      

  2.   

    用完之后,要关闭掉ResultSet,Statement,Connection
      

  3.   

    建议你改用专用的JDBC驱动,不用JDBC-ODBC驱动。
      

  4.   

    我做的只是查询, 保持连接的查询啊,因为后面还要很多查询的,所以有必要保持连接,如果每次查完后关闭,等一会儿要查询时又新建连接,那不是更浪费,而且我试过,效率非常低
    我也想用jdbc驱动,可是暂时没有,而且用jdbc-odbc要方便一些,
    我是在自己机器上用的,数据库就在自己机子上啊,
    前几天试还没有问题的,
      

  5.   

    如果是执行多次查询,而且不是同时查询的话,可以复用这个Connection;
    但Statement,ResultSet要及时地关闭掉.否则会产生异常.
      

  6.   

    关数据库连接不是这样写的,应该写到finally里.
    try
    {
    conn = DriverManager.getConnection(sConnStr);
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                                ResultSet.CONCUR_UPDATABLE);
    rs = stmt.executeQuery(sql);
    }
    catch(SQLException ex)
    {
                      } finally {
                      }