关于连接数据库后的关闭问题。在线等!急!!!!!!!!!
大家请帮帮忙看一下,我是新学这个的,请大家帮我看一下,如果我的jsp调用这个类,我在jsp中最后还用调用db.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( "net.sourceforge.jtds.jdbc.Driver ");
DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
con = java.sql.DriverManager.getConnection( "jdbc:jtds:sqlserver://127.0.0.1:1433/airin_b2b;user=sa;password=tytymnty110110 ");
st = con.createStatement();
}
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){}
}
private void close(Statement st,ResultSet rs, Connection conn){
if(rs!=null)
try{rs.close();}catch(Exception e){}
if(st!=null)
try{st.close();}catch(Exception e){}
if (conn!=null)try{conn.close();}catch(Exception e){}
}
}
[解决办法]
数据库连接后,一定要关啊.......最好 不要直接操作RS.....
[解决办法]
这样的:把查询的结果直接存在Vector里面,或者ArrayList里面,然后需要查询结果的时候直接从Vector或者ArrayList里面去取,数据库操作完毕以后连接一定要释放,