>IOC的初始化是由STRUTS的PLUGIN来实现装载的
Ioc初始化也可以直接在web.xml配置初始化,
Jdon的Ioc只对POJO有作用,当你用EJB时,无需使用Jdon的Ioc,EJB的IOc由EJB容器管理,如EJB3的JBoss 4.0等,此时Jdon只是一个Proxy,另外WebAppUtil调用一般都是在Web容器调用EJB容器服务,EJB内部本身不能这样调用,包括POJO内部也不能这样调用。
关于查询,当然可以联合查询,给你看看一个复杂的多表查询代码,如下:
public PageIterator getMessages(Long categoryId, int start, int count) {
String GET_ALL_ITEMS_ALLCOUNT = "select count(1) from message ";
String GET_ALL_ITEMS = "select messageId from message where categoryId = ? "; Collection params = new ArrayList(1); params.add(categoryId); return pageIteratorSolver.getPageIterator(GET_ALL_ITEMS_ALLCOUNT, GET_ALL_ITEMS, params, start, count); }
public PageIterator getMessages(MessageQuery messageQuery, int start, int count) { logger.debug("enter getMessage");
StringBuffer querySqlCondition = new StringBuffer(""); Collection paramList = new ArrayList(); //查询参数 Session session = null; List queryList = null;
querySqlCondition.append(" FROM message WHERE 1=1 "); //查询字符串
String categoryId = messageQuery.getCategoryId(); //发布类型 String keyword = messageQuery.getKeyword(); //关键值 String publishUser = messageQuery.getPublishUser();//发布用户 String publishDateDomain = messageQuery.getPublishDateDomain(); //发布时间间隔 if (categoryId != null && !categoryId.equals("")) { //发布类型 querySqlCondition.append(" AND categoryId = ?"); paramList.add(categoryId); }
if (keyword != null && !keyword.equals("")) { //关键值 querySqlCondition.append(" AND (subject like ? OR body LIKE ?)"); paramList.add("%" + keyword + "%"); paramList.add("%" + keyword + "%"); }
if (publishUser != null && !publishUser.equals("")) { //发布用户 querySqlCondition.append(" AND Exists(SELECT userId FROM user WHERE name like ? ) "); paramList.add("%"+ publishUser +"%"); }
if (publishDateDomain != null && !publishDateDomain.equals("")) { //发布时间间隙 querySqlCondition.append(" AND TO_DAYS(NOW()) - TO_DAYS(creationDate) <= ?"); paramList.add(publishDateDomain); }
logger.debug("querySql = " + querySqlCondition); logger.debug("parameter size = " + paramList.size()); String GET_ALL_ITEMS_ALLCOUNT = "select count(1) " + querySqlCondition; String GET_ALL_ITEMS = "select messageId " + querySqlCondition; logger.debug("GET_ALL_ITEMS = " + GET_ALL_ITEMS);
return pageIteratorSolver.getPageIterator(GET_ALL_ITEMS_ALLCOUNT, GET_ALL_ITEMS, paramList, start, count);
}
|