当前位置: 技术问答>java相关
关于Bean的生命周期与效率的问题
来源: 互联网 发布时间:2015-02-21
本文导语: 如果Bean设为Page,该Bean的页面每次显示都要创建Bean,这是否意味着多个页面使用同一种类型的Bean,就要把这个Bean的scope设为Application? 然后每页用同一个对象名的Bean? 另外: 我在Bean中操作数据库: public class ADDB { ...
如果Bean设为Page,该Bean的页面每次显示都要创建Bean,这是否意味着多个页面使用同一种类型的Bean,就要把这个Bean的scope设为Application? 然后每页用同一个对象名的Bean?
另外:
我在Bean中操作数据库:
public class ADDB
{
Connection conn=null;
Statement stmt=null;
public ADDB()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:AD_DB");
stmt= conn.createStatement();
}
catch(java.lang.ClassNotFoundException e1)
{
System.err.println("ADDB():" + e1.getMessage());
}
catch(SQLException e2)
{
System.err.println("ADDB(): " + e2.getMessage());
}
}
public ResultSet GetResultSet()
{
//.......
}
}
是否还应添加一个DBClose() 函数,里面执行conn.close,在jsp中调用它呢?(否则conn如何关闭?)
在jsp中调用 GetResultSet()得到的rs,是否要执行rs.close关闭?还是在Bean的GetResultSet()里返回rs前执行rs.close?
谢谢
另外:
我在Bean中操作数据库:
public class ADDB
{
Connection conn=null;
Statement stmt=null;
public ADDB()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:AD_DB");
stmt= conn.createStatement();
}
catch(java.lang.ClassNotFoundException e1)
{
System.err.println("ADDB():" + e1.getMessage());
}
catch(SQLException e2)
{
System.err.println("ADDB(): " + e2.getMessage());
}
}
public ResultSet GetResultSet()
{
//.......
}
}
是否还应添加一个DBClose() 函数,里面执行conn.close,在jsp中调用它呢?(否则conn如何关闭?)
在jsp中调用 GetResultSet()得到的rs,是否要执行rs.close关闭?还是在Bean的GetResultSet()里返回rs前执行rs.close?
谢谢
|
1.可以用session,将初始化信息写在构造函数
2.如果退出,则关闭conn,如果完成页面,则关闭stmt
3.stmt关闭了,对应的rs也就自动不存在了
2.如果退出,则关闭conn,如果完成页面,则关闭stmt
3.stmt关闭了,对应的rs也就自动不存在了
|
大概要在jsp中調用conn.close,bean原本就是用來重用的,bean初始化的到執行人conn.close 數据庫不久關閉了么?
我覺得的rs.close和conn.close放在jsp中好一點
我一直都是這樣用,希望大家給我意見
我覺得的rs.close和conn.close放在jsp中好一點
我一直都是這樣用,希望大家給我意見