<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    gembin

    OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

    HBase, Hadoop, ZooKeeper, Cassandra

    Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

    There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

    About Me

     

    Try ORM for HBase with DataNucleus hbase plugin

     
    Try ORM for HBase with DataNucleus HBase datastore

    suppose you have read the last blog entry or you have already setup the env for hbase

    1. download required jars datanucleus-core-2.0.0.m1.jar and datanucleus-hbase-1.0.1.jar
          hadoop-0.19.1-core.jar
          hbase-0.19.3.jar
          jdo2-api-2.3-eb.jar
          commons-logging-1.0.4.jar
          commons-cli-1.2.jar
         
         datanucleus.properties
         javax.jdo.option.ConnectionURL=hbase
         javax.jdo.option.ConnectionUserName=
         javax.jdo.option.ConnectionPassword= 


    2. create a data model
         

    package net.blogjava.gembin.hbase.model;

    import java.util.Date;

    import javax.jdo.annotations.IdGeneratorStrategy;
    import javax.jdo.annotations.IdentityType;
    import javax.jdo.annotations.PersistenceCapable;
    import javax.jdo.annotations.Persistent;

    @PersistenceCapable(identityType 
    = IdentityType.APPLICATION)
    public class Entry {

        @Persistent(primaryKey 
    = "true", valueStrategy = IdGeneratorStrategy.UUIDHEX)
        
    private String id;
        @Persistent
        
    private String title;
        @Persistent
        
    private String content;
        @Persistent
        
    private String description;
        @Persistent
        
    private Date postDate;

        
    public String getId() {
            
    return id;
        }

        
    public void setId(String id) {
            
    this.id = id;
        }

        
    public String getTitle() {
            
    return title;
        }

        
    public void setTitle(String title) {
            
    this.title = title;
        }

        
    public String getContent() {
            
    return content;
        }

        
    public void setContent(String content) {
            
    this.content = content;
        }

        
    public String getDescription() {
            
    return description;
        }

        
    public void setDescription(String description) {
            
    this.description = description;
        }

        
    public Date getPostDate() {
            
    return postDate;
        }

        
    public void setPostDate(Date postDate) {
            
    this.postDate = postDate;
        }

        
    public String toString() {
            
    return new StringBuilder()
            .append(
    "{id=")
            .append(id 
    + "\n")
            .append(
    "title=")
            .append(title 
    + "\n")
            .append(
    "content=")
            .append(content 
    + "\n")
            .append(
    "postDate=")
            .append(postDate 
    + "\n")
            .append(
    "description=")
            .append(description 
    + "\n}")
            .toString();
        }
    }


    3. create persistence service

    package net.blogjava.gembin.hbase.service;

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;

    import javax.jdo.Extent;
    import javax.jdo.JDOHelper;
    import javax.jdo.PersistenceManager;
    import javax.jdo.PersistenceManagerFactory;
    import javax.jdo.Query;
    import javax.jdo.Transaction;

    import net.blogjava.gembin.hbase.model.Entry;

    public class EntryPersistenceService {
        
    private static final String DATANUCLEUS_PROPERTIES = "datanucleus.properties";
        
    static PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(DATANUCLEUS_PROPERTIES);
        
    private PersistenceManager persistenceManager;

        
    public EntryPersistenceService() {
            persistenceManager 
    = pmf.getPersistenceManager();
        }
        
    /**
         * 
         * 
    @param entry
         
    */
        
    public void saveEntry(Entry entry) {
            Transaction tx 
    = persistenceManager.currentTransaction();
            
    try {
                tx.begin();
                persistenceManager.makePersistent(entry);
                tx.commit();
            } 
    finally {
                
    if (tx.isActive()) {
                    tx.rollback();
                }
            }
        }
        
        
    /**
         * 
         * 
    @param entry
         
    */
        
    public void removeEntry(Entry entry){
            Transaction tx 
    = persistenceManager.currentTransaction();
            
    try {
                tx.begin();
                persistenceManager.deletePersistent(entry);
                tx.commit();
            } 
    finally {
                
    if (tx.isActive()) {
                    tx.rollback();
                }
            }
        
        }
        
    /**
         * 
         * 
    @param id
         * 
    @return
         
    */
        
    public Entry getEntry(String id){
            Transaction tx 
    = persistenceManager.currentTransaction();
            Entry e
    =null;
            
    try {
                tx.begin();
                e
    = persistenceManager.getObjectById(Entry.class,id);
                tx.commit();
            } 
    finally {
                
    if (tx.isActive()) {
                    tx.rollback();
                }
            }
            
    return e;
        }
        
    /**
         * 
         * 
    @return
         
    */
        
    public Collection<Entry> getEntries() {
            Collection
    <Entry>entries = new ArrayList<Entry>();
            Transaction tx 
    = persistenceManager.currentTransaction();
            
    try {
                tx.begin();
                Extent
    <Entry>extent = persistenceManager.getExtent(Entry.class);
                Query q 
    = persistenceManager.newQuery(extent);
                Collection
    <Entry> c = (Collection<Entry>) q.execute();
                
    if (c == null)
                    
    return null;
                Iterator
    <Entry> iter = c.iterator();
                
    while (iter.hasNext()) {
                    Entry p 
    = iter.next();
                    entries.add(p);
                }
                tx.commit();
            } 
    finally {
                
    if (tx.isActive()) {
                    tx.rollback();
                }
            }
            
    return entries;
        }
        
    /**
         * 
         
    */
        
    public void close() {
            
    if (pmf != null && !pmf.isClosed())
                pmf.close();
            
    if (persistenceManager != null && !persistenceManager.isClosed())
                persistenceManager.close();
        }
        
    }



    4. create test client

    persist a Entry
            EntryPersistenceService mp=new EntryPersistenceService();
            Entry entry
    =new Entry();
            entry.setTitle(
    "first entry");
            entry.setPostDate(
    new Date());
            entry.setDescription(
    "it's first entry!!");
            entry.setContent(
    "It's first content of this entry");
            mp.saveEntry(entry);


    retrieve entries
            EntryPersistenceService mp=new EntryPersistenceService();
            Collection
    <Entry> entries=mp.getEntries();
            Iterator
    <Entry>it=entries.iterator();
            
    while(it.hasNext()){
                System.out.println(it.next());
            }

    output:
    {id=4aea47a52328c7a0012328c7a0380000
    title=first entry
    content=It's first content of this entry
    postDate=Mon Aug 17 22:34:14 CST 2009
    description=it's first entry!!
    }


     enjoy it!!!

    how to setup hbase env: http://www.tkk7.com/gembin/archive/2009/08/16/291290.html

    posted on 2009-08-17 23:33 gembin 閱讀(2481) 評論(1)  編輯  收藏 所屬分類: Databasehbase

    評論

    # re: Try ORM for HBase with DataNucleus hbase plugin 2009-08-18 09:51 99讀書人

    不錯哦  回復  更多評論   

    導航

    統計

    常用鏈接

    留言簿(6)

    隨筆分類(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊

    收藏夾(9)

    Adobe

    Android

    AS3

    Blog-Links

    Build

    Design Pattern

    Eclipse

    Favorite Links

    Flickr

    Game Dev

    HBase

    Identity Management

    IT resources

    JEE

    Language

    OpenID

    OSGi

    SOA

    Version Control

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    free counters
    主站蜘蛛池模板: 在线人成精品免费视频| 久久福利青草精品资源站免费 | 国产三级在线观看免费| 国产精品成人亚洲| 亚洲日韩精品无码一区二区三区 | 在线精品免费视频无码的| 羞羞漫画登录页面免费| 久久久久久亚洲精品| A级毛片内射免费视频| 色多多www视频在线观看免费| 国产∨亚洲V天堂无码久久久| 免费精品国产日韩热久久| 日本一区二区三区在线视频观看免费| 亚洲动漫精品无码av天堂| 麻豆国产VA免费精品高清在线| 好吊色永久免费视频大全| 亚洲AV综合色区无码二区偷拍| 亚洲а∨天堂久久精品| 亚洲免费中文字幕| 亚洲日韩在线观看免费视频| 亚洲a视频在线观看| 亚洲中文字幕在线第六区| 妞干网免费观看视频| 国产白丝无码免费视频| 阿v免费在线观看| 亚洲乱码在线视频| 国产成A人亚洲精V品无码 | 亚洲av日韩av高潮潮喷无码 | 亚洲人成在线精品| 亚洲国产一成人久久精品| 国产精品免费看香蕉| 天天影视色香欲综合免费| 国产在线播放线91免费| 青草久久精品亚洲综合专区| 亚洲无线一二三四区| 亚洲精品无码鲁网中文电影| 波多野结衣视频在线免费观看| 国产免费不卡v片在线观看| 免费国产污网站在线观看15| 黄 色一级 成 人网站免费| 国产亚洲精品国产福利在线观看|