<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 閱讀(2423) 評(píng)論(1)  編輯  收藏 所屬分類: Databasehbase

    評(píng)論

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

    不錯(cuò)哦  回復(fù)  更多評(píng)論   

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊(cè)

    收藏夾(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

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    free counters
    主站蜘蛛池模板: 亚洲一区二区三区首页| 免费国产一级特黄久久| 97国产免费全部免费观看| 亚洲线精品一区二区三区| 亚洲人成人77777网站不卡| 久久午夜无码免费| 成全视频在线观看免费高清动漫视频下载| 四虎永久精品免费观看| 亚洲国产综合无码一区| 久久精品亚洲AV久久久无码 | 8888四色奇米在线观看免费看| 精品亚洲一区二区| 亚洲国产aⅴ成人精品无吗| 影音先锋在线免费观看| 亚洲中文字幕久久精品蜜桃| 色www免费视频| 亚洲色婷婷综合开心网| 国产永久免费高清在线| 免费视频中文字幕| 美女被吸屁股免费网站| 久久亚洲精品无码观看不卡| 91在线视频免费观看| 亚洲国产综合专区电影在线| 一级特黄a大片免费| 丁香花在线观看免费观看 | 亚洲尹人九九大色香蕉网站| 国产成人免费高清激情明星| 在线观看亚洲AV日韩AV| 精品一区二区三区无码免费视频| 亚洲国产精品无码久久久久久曰| a毛片免费全部在线播放**| 色婷婷亚洲十月十月色天| 成人免费福利电影| 精品亚洲麻豆1区2区3区| 成人影片一区免费观看| 亚洲欧洲另类春色校园小说| 99精品视频在线免费观看| 亚洲视频在线观看2018| 亚洲精品麻豆av| 午夜免费1000部| 亚洲美女色在线欧洲美女|