>
> Hello.
> first of all, thanks to hbase members so much ,
> you helped me a lot.
>
> I wrote simple jdo module for hbase newbie. I wish this module can help
> them.
>
> Some features
>
>    - simple jdo(used reflection)
>    - HTable pool ( I already know HTablePool in habse )
>    - simple query classes ( insert,delete,update,select)
>    - some convinent mehtods.
>    - table sequence generator
>
> I want to contribute this module to hbase
> absolutely, I'll do upgrade that more than more.
>
> again, thanks for help.
>
> http://code.google.com/p/hbase-jdo/  (you can download sources here)
> ---------------------------------------------
>
> AbstractHBaseDBO dbo = new HBaseDBOImpl();
>               
>               //drop if table is already exist.               
> if(dbo.isTableExist("user")){
>                       dbo.deleteTable("user");
>               }
>               
>               //create table          
> dbo.createTableIfNotExist("user",HBaseOrder.DESC,"account");
>               //dbo.createTableIfNotExist("user",HBaseOrder.ASC,"account");   
>         
>               //create index.         String[] cols={"id","name"};
>               dbo.addIndexExistingTable("user","account",cols);
>               
>               //insert                InsertQuery insert = 
> dbo.createInsertQuery("user");
>               UserBean bean = new UserBean();
>               bean.setFamily("account");
>               bean.setAge(20);
>               bean.setEmail("[email protected]");
>               bean.setId("ncanis");
>               bean.setName("ncanis");
>               bean.setPassword("1111");
>               insert.insert(bean);
>               
>               //select 1 row          SelectQuery select = 
> dbo.createSelectQuery("user");
>               UserBean resultBean = 
> (UserBean)select.select(bean.getRow(),UserBean.class);
>               
>               // select column value.         String value = 
> (String)select.selectColumn(bean.getRow(),"account","id",String.class);
>               
>               // search with option (QSearch has EQUAL, NOT_EQUAL, LIKE)      
>         // select id,password,name,email from account where id='ncanis' limit 
> startRow,20               HBaseParam param = new HBaseParam();
>               param.setPage(bean.getRow(),20);
>               param.addColumn("id","password","name","email");
>               param.addSearchOption("id","ncanis",QSearch.EQUAL);
>               select.search("account", param, UserBean.class);
>               
>               // search column value is existing.             boolean isExist 
> = select.existColumnValue("account","id","ncanis".getBytes());
>               
>               // update password.             UpdateQuery update = 
> dbo.createUpdateQuery("user");
>               Hashtable<String, byte[]> colsTable = new Hashtable<String, 
> byte[]>();
>               colsTable.put("password","2222".getBytes());
>               update.update(bean.getRow(),"account",colsTable);
>               
>               //delete                DeleteQuery delete = 
> dbo.createDeleteQuery("user");
>               delete.deleteRow(resultBean.getRow());
>       
>               ////////////////////////////////////            // etc          
>               // HTable pool with apache commons pool         // borrow and 
> release. HBasePoolManager(maxActive, minIdle etc..)               
> IndexedTable table = dbo.getPool().borrow("user");
>               dbo.getPool().release(table);
>               
>               // upload bigFile by hadoop directly.           HBaseBigFile 
> bigFile = new HBaseBigFile();
>               File file = new File("doc/movie.avi");
>               FileInputStream fis = new FileInputStream(file);
>               Path rootPath = new Path("/files/");
>               String filename = "movie.avi";
>               bigFile.uploadFile(rootPath,filename,fis,true);
>               
>               // receive file stream from hadoop.             Path p = new 
> Path(rootPath,filename);
>               InputStream is = bigFile.path2Stream(p,4096);
>
>
>

Reply via email to