首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

conn关闭出错有关问题!(就这100分了!)

2011-11-30 
conn关闭出错问题!在线等!!!(就这100分了!)我们刚学习编程,老师给了一个编写了一个数据库链接操作的类(如

conn关闭出错问题!在线等!!!(就这100分了!)
我们刚学习编程,老师给了一个编写了一个数据库链接操作的类(如下)。我在jsp调用的时候如何才能关闭conn链接?请大家赐教!我是初学的还不大懂!谢谢大家了!
页面引用:

<%
conn   db   =   new   conn();
ResultSet   rs   =   db.Query( "* ", "表 ");
while(rs.next()){

}
rs.close();
db.con.close();
%>

连接数据库的类:
package
db.con.close();

package   airinb2b;
import   java.sql.*;
import   java.io.*;
import   java.util.*;
public   class   conn     //定义类名
{
    java.sql.Connection   con;
    Statement     st;
    ResultSet     rs;
    public   conn()
    {
        try{           //容错
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
                    con   =   DriverManager.getConnection( "jdbc:odbc:airinb2b ", "sa ", "tytymnty110110 ");
                    st   =   con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

              }
              catch(Exception   e){}
    }


/**查询记录的方法*/


    public   ResultSet   Query(String   biao,String   table,String   tiaojian)
        {
        try{//必要的容错
                  String   select   =   "select   "+biao+ "   from     "+table+ "   where   1=1 "+tiaojian;
                  rs   =   st.executeQuery(select);//查询结果的显示
              }
              catch(Exception   e)
                      {
                          System.out.print(e.toString());//容错语句
                      }
                      return   rs;
    }
    public   int   count(String   table)
    {
      int   n=0;
      try{

                  String   select   =   "select   *   from     "+table;
                  rs   =   st.executeQuery(select);//查询结果的显示
                  while(rs.next()){   n   =   rs.getRow();}
              }
              catch(Exception   e)
                      {
                          System.out.print(e.toString());//容错语句
                      }
                      return   n;


    }

/**删除记录的方法*/

    public   void   del(String   table,String   tiaojian)//定义无返回类型的删除方法里面有两个变量
    {                                                                                 //因为删除操作只影响记录的条数
        try
        {
            //delete   from   table   where   conn;
            String   delete   =   "   delete   from   "+table+ "   where   "+tiaojian;
            //定义字符串变量,把不边的写到类里,便的用变量代替
            st.executeUpdate(delete);//执行删除
        }catch(Exception   e){}
    }

/**添加记录的方法(可以随意的添加不需要条件)*/

    public   void   ins(String   table,String   zd,String   zhi)
    {
        try
        {
            //inser   into   table()values()   ;
            String   insert   =   "   insert   into   "+table+ "   ( "+zd+ ")   values   ( "+zhi+ ") ";
            st.executeUpdate(insert);
        }

        catch(Exception   e)
                {
                      System.out.print(e.toString());
                }
    }

/**修改记录*/

    public   void   upd(String   table,String   zd,String   tiaojian)
    {
        try
        {
              //update   table   set   zd= ' "+bl+ " '   where   ID= ' "+kj+ " ';
              String   update;//定义修改变量
              update   =   "   update   "+table+ "   set   "+zd+ "   where   1=1 "+tiaojian;
              st.executeUpdate(update);
              //执行修改变量语句
        }
        catch(Exception   e){}
    }

}

错误信息:
D:\jakarta-tomcat-5.0.28\work\Catalina\localhost\yunlongwang\org\apache\jsp\Untitled_002d2_jsp.java:59:   con   is   not   public   in   airinb2b.conn;   cannot   be   accessed   from   outside

[解决办法]
db.con.close();=> conn.close();
[解决办法]
关闭数据库的语句要放在try...catch里
[解决办法]
关闭数据库的语句也可以放在finally里

------解决方案--------------------


finally{
conn.close();
}
[解决办法]
你的conn类没有定义close方法嘛.
定义一个就可以了

[解决办法]
这样就OK了,在JSP中调用这个方法就行了。
[解决办法]
需要放到try模块中:

try{
if(con!=null)
{
con.close();
}
}catch(SQLException e){
e.printStackTrace();
}

[解决办法]
最好在finally里面关闭,因为这样子即使try出异常了,链接还是会被关闭!
[解决办法]
楼主你错了,ResultSet是不能作为对象返回地,你要纠正你地思路
要把ResultSet导入到list中,在关闭连接,返回list
[解决办法]
try
{
if(rs != null)
{
rs.close();
}
if(st != null)
{
st.close();
}
if(con!=null && !con.isClosed())
{
con.close();
}
}
catch(SQLException e)
{
e.printStackTrace();
}

热点排行