Here is a sample program which does most of the operations to help you understand the APIs and their usage.
bool flag =true;DBParam dp;dp.setTransactionType(DB_TRANSACTION_NONE);BangDBDatabase * bdb =newBangDBDatabase("mydb",& dp);if(!bdb){printf("db could not be created, quitting\n");//return or handle error}// db_param sets the db environment, see the section to know more about it// create a large tableTableEnv te;te.setTableType(LARGE_TABLE);// large table must have composite primary key, else db will throw errorte.setKeyType(COMPOSITE_KEY);te.setKeySize(64);// set key size keeping ~32 bytes for system to add/consumeBangDBTable * large_tbl = bdb ->getTable("my_large_tbl",& te, OPENCREATE);if(!large_tbl){printf("we could not create the table my_large_tbl\n"); flag =false;// handle error}// let's load large fileconstchar* file_path ="libbangdb.so.2.0";constchar* fkey ="bangdb_2_0_binary";FDT fk;set_fat(& fk, fkey);if(large_tbl ->putFile(& fk, file_path, INSERT_UNIQUE)<0){printf("error in putting large file\n"); flag =false;// handle error}constchar* file_name ="linbangdb.so.2.0_new_name";constchar* download_fpath ="/tmp";if(large_tbl ->getFile(& fk, file_name, download_fpath)<0){printf("get file error\n"); flag =false;// handle error}int nslices = large_tbl ->countSliceLarge_data(& fk);printf("num of slices for the file = %d\n", nslices);constchar* finfo = large_tbl ->listLargeDataKeys(fkey);printf("the file info = %s\n", finfo);delete[] finfo;delete large_tbl;bdb ->closeDatabase(DEFAULT);delete bdb;
System.loadLibrary("bangdb-java");System.out.println("load banagdb-java successful");boolean flag =true;DBParam dbp =newDBParam();dbp.setTransactionType(TransactionType.DB_MULTIOPS_TRANSACTION_NONE);BangDBDatabase bdb =newBangDBDatabase("mydb", dbp);if(bdb !=null){System.out.println("java - bdb created");}else flag =false;TableEnv tenv =newTableEnv();te.setTable_type(TableType.LARGE_TABLE);te.setKey_type(KeyType.COMPOSITE_KEY);te.setKey_sz(48);BangDBTable lt = bdb.getTable("large_table", te,OpenType.OPENCREATE);if(lt.putFile("file1","./bangdb.config",InsertOptions.INSERT_UNIQUE)<0){System.out.println("failed to upload file"); flag =false;}if(lt.getFile("file1","bangdb.config","/tmp")<0){System.out.println("failed to download file"); flag =false;}byte[] ldata =newbyte[0x2000000];if(lt.putLargeData("largeKey", ldata,InsertOptions.INSERT_UNIQUE)<0){System.out.println("failed to put large data"); flag =false;}byte[] lrvd = lt.getLargeData("largeKey");if(lrvd.length != ldata.length){System.out.println("failed to get large data"); flag =false;}System.out.println("Slice count = "+ lt.countSliceLargeData("largeKey"));System.out.println("list large keys = "+ lt.listLargeDataKeys("largeKey",1));System.out.println("large count data = "+ lt.countLargeData());if(lt.delLargeData("largeKey")<0){System.out.println("failed to del large data"); flag =false;}System.out.println("Slice count = "+ lt.countSliceLargeData("largeKey"));System.out.println("list large keys = "+ lt.listLargeDataKeys("largeKey",1));System.out.println("large count data = "+ lt.countLargeData());bdb.closeDatabase(CloseType.DEFAULT);if(flag)System.out.println("test_table_basic passed");elseSystem.out.println("test_table_basic failed");