科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道OJB中的多表查询和更新

OJB中的多表查询和更新

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

OJB的文章实在是少的可怜,自己总结了一下一些重点的内容。想到哪里写到哪里吧 比如有课程(event)和类别(catalog)两张表,二者是多对多的关系,关系表叫做catalogEventBridge。

作者:中国IT实验室 来源:中国IT实验室 2007年9月26日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)


 

CatalogEventBridge.java


  1. public class CatalogEventBridge {
  2.     private int catalogID = 0;
  3.     private int eventTypeID = 0;
  4.     /**
  5.      * @return Returns the catalogID.
  6.      */
  7.     public int getCatalogID() {
  8.         return catalogID;
  9.     }
  10.     /**
  11.      * @param catalogID The catalogID to set.
  12.      */
  13.     public void setCatalogID(int catalogID) {
  14.         this.catalogID = catalogID;
  15.     }
  16.     /**
  17.      * @return Returns the eventTypeID.
  18.      */
  19.     public int getEventTypeID() {
  20.         return eventTypeID;
  21.     }
  22.     /**
  23.      * @param eventTypeID The eventTypeID to set.
  24.      */
  25.     public void setEventTypeID(int eventTypeID) {
  26.         this.eventTypeID = eventTypeID;
  27.     }
  28. }


3. 定义DAO


  1. import java.util.Collection;
  2. import java.util.Iterator;
  3. import org.apache.log4j.Logger;
  4. import org.apache.ojb.broker.PersistenceBroker;
  5. import org.apache.ojb.broker.PersistenceBrokerFactory;
  6. import org.apache.ojb.broker.query.Criteria;
  7. import org.apache.ojb.broker.query.QueryByCriteria;
  8. import org.apache.ojb.broker.query.QueryFactory;
  9. import org.odmg.Implementation;
  10. import org.pie.vls.Application.AbstractVLSBase;
  11. public class CatalogDAO extends AbstractVLSBase {
  12.     private Collection catalogList;
  13.     private PersistenceBroker broker;
  14.     private static final Logger logger = Logger.getLogger(Catalog.class);
  15.     private int catalogID = 0;
  16.     public CatalogDAO(Implementation impl) {
  17.         super(impl);
  18.         init();
  19.     }
  20.     public CatalogDAO(Implementation impl, int catalogID) {
  21.         super(impl);
  22.         this.catalogID = catalogID;
  23.         init();
  24.     }
  25.     /* (non-Javadoc)
  26.      * @see org.pie.vls.Application.VLSBase#init()
  27.      */
  28.     public void init() {
  29.         // TODO Auto-generated method stub
  30.         try {
  31.             broker = PersistenceBrokerFactory.defaultPersistenceBroker();
  32.             broker.clearCache();
  33.             Criteria crit = new Criteria();
  34.             if (this.catalogID > 0) {
  35.                 crit.addEqualTo("catalogID", new Integer(this.catalogID));
  36.             }
  37.             QueryByCriteria tquery = QueryFactory.newQuery(Catalog.class, crit);
  38.             this.catalogList = broker.getCollectionByQuery(tquery);
  39.             broker.clearCache();
  40.             broker.close();
  41.         } catch (Throwable t) {
  42.             logger.error(t.getMessage(), t);
  43.         }
  44.     }
  45.     
  46.     public boolean isEmpty(){
  47.         return this.catalogList.isEmpty();
  48.     }
  49.     public Collection getCatalogList() {
  50.         return this.catalogList;
  51.     }
  52.     public Catalog getCatalog() {
  53.         Iterator iter = this.catalogList.iterator();
  54.         Catalog catalog = (Catalog) iter.next();
  55.         return catalog;
  56.     }
  57.     public void create(Catalog catalog) {
  58.         update(catalog);
  59.     }
  60.     public void update(Catalog catalog) {
  61.         try {
  62.             broker = PersistenceBrokerFactory.defaultPersistenceBroker();
  63.             broker.clearCache();
  64.             broker.beginTransaction();
  65.             broker.store(catalog);
  66.             broker.commitTransaction();
  67.             broker.close();
  68.         } catch (Throwable t) {
  69.             logger.error(t.getMessage(), t);
  70.         }
  71.     }
  72.     public void delete(Catalog catalog) {
  73.         try {
  74.             broker = PersistenceBrokerFactory.defaultPersistenceBroker();
  75.             broker.clearCache();
  76.             broker.beginTransaction();
  77.             broker.delete(catalog);
  78.             broker.commitTransaction();
  79.             broker.close();
  80.         } catch (Throwable t) {
  81.             logger.error(t.getMessage(), t);
  82.         }
  83.     }
  84. }

catalogEventBridgeDAO.java和eventTypeDAO.java跟上面的这个DAO类似,就不再重复。

    使用方法就很简单了,只要通过CatalogDAO得到了一个catalog的实例,那么就可以通过catalog.getCatalogEventList()来获得bridge表中相关的数据,同样,调用catalogDAO中的create,update和delete方法,不仅对catalog表作操作,同样也对catalogEventBridge表中的数据作操作。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章