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();
}