我连接数据库的程序是:
String SDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String SDBUrl="jdbc:odbc:YellowPage";
String User="sa";
String PW="leo";
private Connection conn=null;
private Statement stmt=null;
ResultSet rs=null;
//注册数据库驱动器
public sqlBean() {
try{
Class.forName(SDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("sqlBean():"+e.getMessage());
}
}
//数据查询
public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection(SDBUrl,User,PW);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("ExectueQuery():"+ex.getMessage());
}
return rs;
}
//关闭数据库
public void closeStmt(){
try{ stmt.close(); }
catch(SQLException e){ e.printStackTrace(); }
}
public void clseConn(){
try{ conn.close(); }
catch(SQLException e){ e.printStackTrace(); }
}
我有一个疑问:我conn和stmt写的位置正确吗?
如果我jsp调用时有多个查询,那不就建立了多个conn和stmt吗?!
我是不是每次查询后都要close一次conn和stmt啊!?好像这样不实际.
请问:conn和stmt的创建该放在哪呢?
(可以放在“注册数据库驱动器”函数吗?这样是不是就可以一个jsp页面只close一次conn和stmt了?)
String SDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String SDBUrl="jdbc:odbc:YellowPage";
String User="sa";
String PW="leo";
private Connection conn=null;
private Statement stmt=null;
ResultSet rs=null;
//注册数据库驱动器
public sqlBean() {
try{
Class.forName(SDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("sqlBean():"+e.getMessage());
}
}
//数据查询
public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection(SDBUrl,User,PW);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("ExectueQuery():"+ex.getMessage());
}
return rs;
}
//关闭数据库
public void closeStmt(){
try{ stmt.close(); }
catch(SQLException e){ e.printStackTrace(); }
}
public void clseConn(){
try{ conn.close(); }
catch(SQLException e){ e.printStackTrace(); }
}
我有一个疑问:我conn和stmt写的位置正确吗?
如果我jsp调用时有多个查询,那不就建立了多个conn和stmt吗?!
我是不是每次查询后都要close一次conn和stmt啊!?好像这样不实际.
请问:conn和stmt的创建该放在哪呢?
(可以放在“注册数据库驱动器”函数吗?这样是不是就可以一个jsp页面只close一次conn和stmt了?)
2:close放到finally里
stmt=conn.createStatement();
放在构造函数里边..