在上述两种数据库交互方法之间进行选择没有硬性规定。开发人员必须做出合乎逻辑的选择
AccessBeans
缓存是访问 bean 的优势之一。这是一个很好的性能改进,可以通过缓存 home 对象来实现,因为查找 home 对象的成本很高。支持访问 bean 的另一点是处理乐观更新。您的情况是获取数据(而不是更新/插入),因此您在这里是安全的。
会话 Bean
与 access bean 一样,当您想从多个表中获取数据时,会话 bean 是另一种从 DB 读取数据的方式。会话 bean 必须实现 BASEJDBCHelper 类。
public class TestSessionBean extends
com.ibm.commerce.base.helpers.BaseJDBCHelper
implements SessionBean{
public Object fetchResults() throws
javax.naming.NamingException, SQLException
{
try {
// get a connection from the WebSphere Commerce data source
makeConnection();
PreparedStatement prepStatement = getPreparedStatement( "sql to execute");
ResultSet rs = executeQuery(prepStatement, false);
}
finally {
closeConnection();
}
}
}
使用 ServerJDBCHelperAccessBean
这在您必须在 EJB 之外进行数据库事务时使用。请记住,强烈建议使用 EJB 进行更新/删除以保持整体完整性。
在您的情况下,据我了解,这是一个涉及多个表的选择,并且您不希望数据真正同步(就像您可以丢失已更新纳秒左右的数据一样)。因此,您可以继续使用第二种或第三种方法
一个很好的参考:
http ://deepakpadmakumar.blogspot.com.au/2012/05/session-beans-and-entity-beans-in-wcs.html