Skip to content

Commit 4369829

Browse files
committed
Application Database v1.6
1 parent 5a668c5 commit 4369829

4 files changed

Lines changed: 59 additions & 66 deletions

File tree

V152/iBoxDBv152.jar

-286 KB
Binary file not shown.

V152/JDB.java renamed to V16/JDB.java

Lines changed: 55 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,26 @@
1111
import iBoxDB.LocalServer.IO.*;
1212
import iBoxDB.LocalServer.Replication.*;
1313

14-
import iBoxDB.JDB.Example.Server.*;
14+
import iBoxDB.JDB.Example.Server.*;
1515
import iBoxDB.JDB.Example.Server.Package;
1616

17-
// iBoxDB.Java v1.5.2
17+
// iBoxDB.Java v1.6
1818

1919
public class JDB {
2020

2121
private static boolean isAndroid = false;
2222

2323
// com.example.fapp
24-
/*
25-
public static void initAndroid(String packageName) {
26-
isAndroid = true;
27-
BoxFileStreamConfig.BaseDirectory = android.os.Environment
28-
.getDataDirectory().getAbsolutePath()
29-
+ "/data/"
30-
+ packageName
31-
+ "/";
32-
}
33-
*/
24+
25+
// public static void initAndroid(String packageName) {
26+
// isAndroid = true;
27+
// BoxFileStreamConfig.BaseDirectory = android.os.Environment
28+
// .getDataDirectory().getAbsolutePath()
29+
// + "/data/"
30+
// + packageName
31+
// + "/";
32+
// }
33+
3434
public static String run() {
3535
return run(false);
3636
}
@@ -143,8 +143,6 @@ public void setRegTime(Date value) {
143143
_regTime = value;
144144
}
145145

146-
// 20 chars, just for index , default 64 chars
147-
@BoxLength(20)
148146
public String getName() {
149147
return _name;
150148
}
@@ -153,8 +151,6 @@ public void setName(String value) {
153151
_name = value;
154152
}
155153

156-
// 256 bytes
157-
@BoxLength(256)
158154
public Object[] getTags() {
159155
return _tags;
160156
}
@@ -163,8 +159,6 @@ public void setTags(Object[] value) {
163159
_tags = value;
164160
}
165161

166-
// 40 bytes , default 64 bytes
167-
@BoxLength(40)
168162
public BigDecimal getAmount() {
169163
return _amount;
170164
}
@@ -175,14 +169,15 @@ public void setAmount(BigDecimal value) {
175169

176170
}
177171

172+
public static class MemberVIP extends Member {
173+
public int VIP;
174+
}
175+
178176
public static class MemberInc extends Member {
179177
// increment type is long
180178
public long Version;
181179
}
182180

183-
// document Object , fixed length will faster (1024 bytes)
184-
// [optional]
185-
@BoxLength(1024)
186181
public static class Product extends HashMap<String, Object> {
187182

188183
public int Type() {
@@ -246,15 +241,22 @@ public PlatformConfig() {
246241

247242
public static class MyConfig extends PlatformConfig {
248243
public MyConfig(long addr) {
244+
// -----Table Member------//
249245
this.EnsureTable(Member.class, "Member", "ID");
250-
this.EnsureIndex(Member.class, "Member", false, "Name");
246+
// stringColumn(length), default length is 32
247+
this.EnsureIndex(Member.class, "Member", "Name(20)");
248+
// particular index for 'MemberVIP.VIP' column
249+
this.EnsureIndex(MemberVIP.class, "Member", "VIP");
251250

251+
// ------Table Product------//
252252
this.EnsureTable(Product.class, "Product", "Type", "UID");
253253

254+
// ------Table TSpeed------//
254255
this.EnsureTable(Member.class, "TSpeed", "ID");
255256

257+
// ------Table MemberInc----//
256258
this.EnsureTable(MemberInc.class, "MemberInc", "ID");
257-
//UpdateIncrement, 'Version'
259+
// *UpdateIncrement index 'Version'
258260
this.EnsureUpdateIncrementIndex(MemberInc.class,
259261
"MemberInc", "Version");
260262
}
@@ -269,7 +271,6 @@ protected DatabaseConfig BuildDatabaseConfig(long address) {
269271

270272
public static class ReplicableServer extends LocalDatabaseServer {
271273

272-
273274
protected DatabaseConfig BuildDatabaseConfig(long address) {
274275
if (address == ServerID.SlaveA_Address) {
275276
return new PlatformConfig();
@@ -371,15 +372,19 @@ public static StringBuilder Start() {
371372
m.setRegTime((new GregorianCalendar(2013, 1, 2))
372373
.getTime());
373374
m.setTags(new Object[] { "Nice", "Strong" });
374-
box.insert("Member", m);
375-
376-
m = new Member();
377-
m.ID = box.newId(Member.IncTableID, 1);
378-
m.setName("Kelly");
379-
m.setRegTime((new GregorianCalendar(2013, 1, 3))
375+
// insert => bind(table).insert(value)
376+
box.bind("Member").insert(m);
377+
m = null;
378+
379+
MemberVIP mvip = new MemberVIP();
380+
mvip.ID = box.newId(Member.IncTableID, 1);
381+
mvip.setName("Kelly");
382+
mvip.setRegTime((new GregorianCalendar(2013, 1, 3))
380383
.getTime());
381-
m.setTags(new Object[] { "Gamer" });
382-
box.insert("Member", m);
384+
mvip.setTags(new Object[] { "Gamer" });
385+
mvip.VIP = 3;
386+
box.bind("Member").insert(mvip);
387+
mvip = null;
383388

384389
// Dynamic Column
385390
Product game = new Product();
@@ -389,7 +394,7 @@ public static StringBuilder Start() {
389394
game.Name("MoonFlight");
390395

391396
game.put("GameType", "ACT");
392-
box.insert("Product", game);
397+
box.bind("Product").insert(game);
393398

394399
box.commit().Assert();
395400
} finally {
@@ -406,15 +411,14 @@ public static StringBuilder Start() {
406411
// Name -> Name , name -> name
407412
// getName()->Name , getname()->name
408413
// Name()->Name, name()->name
409-
Member m = TestHelper.GetFrist(box.select(
410-
Member.class, "from Member where Name==?",
411-
"Kelly"));
412-
sb.append("Kelly RegTime "
413-
+ m.getRegTime().toString() + "\r\n");
414-
m.setName("Kelly J");
415-
m.setAmount(BigDecimal.valueOf(100.0));
416-
// Full Update
417-
box.bind("Member", m.ID).update(m);
414+
MemberVIP mvip = TestHelper.GetFrist(box.select(
415+
MemberVIP.class, "from Member where VIP>?",
416+
0));
417+
sb.append(mvip.getName() + " RegTime "
418+
+ mvip.getRegTime().toString() + "\r\n");
419+
mvip.setName("Kelly J");
420+
mvip.setAmount(BigDecimal.valueOf(100.0));
421+
box.bind("Member", mvip.ID).update(mvip);
418422
box.commit().Assert();
419423
} finally {
420424
box.close();
@@ -425,27 +429,12 @@ public static StringBuilder Start() {
425429
Member m = TestHelper.GetFrist(box.select(
426430
Member.class, "from Member where Name==?",
427431
"Kelly J"));
428-
sb.append("Updated 1: " + m.getName() + " "
432+
sb.append("Updated : " + m.getName() + " "
429433
+ m.getAmount() + "\r\n");
430-
431-
m.setAmount(m.getAmount().add(
432-
BigDecimal.valueOf(99.99)));
433-
434-
// Ignore Indexes Update
435-
box.bind("Member", m.ID).updateNoIndex(m);
436-
box.commit().Assert();
437434
} finally {
438435
box.close();
439436
}
440437

441-
{
442-
Member m = TestHelper.GetFrist(db.get().select(
443-
Member.class, "from Member where Name==?",
444-
"Kelly J"));
445-
sb.append("Updated 2: " + m.getName() + " "
446-
+ m.getAmount() + "\r\n");
447-
}
448-
449438
box = db.cube();
450439
try {
451440
// Key-Value Style , Composite-Key Supported
@@ -505,7 +494,7 @@ public static StringBuilder MasterSlave() {
505494
Member m = new Member();
506495
m.ID = box.newId(Member.IncTableID, 1);
507496
m.setName("S " + i);
508-
box.insert("Member", m);
497+
box.bind("Member").insert(m);
509498
}
510499
box.commit().Assert();
511500
} finally {
@@ -571,7 +560,7 @@ public static StringBuilder MasterMaster() {
571560
m.ID = box.newId(Member.IncTableID, 1) * 1000
572561
+ ServerID.MasterA_Address;
573562
m.setName("A" + i);
574-
box.insert("Member", m);
563+
box.bind("Member").insert(m);
575564
}
576565
box.commit().Assert();
577566
} finally {
@@ -585,7 +574,7 @@ public static StringBuilder MasterMaster() {
585574
m.ID = box.newId(Member.IncTableID, 1) * 1000
586575
+ ServerID.MasterB_Address;
587576
m.setName("B" + i);
588-
box.insert("Member", m);
577+
box.bind("Member").insert(m);
589578
}
590579
box.commit().Assert();
591580
} finally {
@@ -605,6 +594,10 @@ public static StringBuilder MasterMaster() {
605594
recycler.getPackage().clear();
606595
}
607596
for (Package p : buffer) {
597+
if (p.Socket.DestAddress == Long.MAX_VALUE) {
598+
// default replicate address
599+
continue;
600+
}
608601
if (p.Socket.DestAddress == ServerID.MasterA_Address) {
609602
(new BoxData(p.OutBox)).masterReplicate(masterA);
610603
}
@@ -736,7 +729,7 @@ public void run() {
736729
m.setName(o + "_" + m.ID);
737730
m.setAge(1);
738731

739-
box.insert("TSpeed", m);
732+
box.bind("TSpeed").insert(m);
740733
}
741734
box.commit().Assert();
742735
} finally {

V16/iBoxDBv16.jar

281 KB
Binary file not shown.

V152/nodejdb.js renamed to V16/nodejdb.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// npm install java
22
var java = require("java");
3-
java.classpath.push("iBoxDBv152.jar")
3+
java.classpath.push("iBoxDBv16.jar")
44

55
var DB = java.import("iBoxDB.LocalServer.DB");
66

@@ -43,13 +43,13 @@ function printObjectArray( list ){
4343

4444
var server = java.newInstanceSync("iBoxDB.LocalServer.DB", 2);
4545
server.ensureTableSync("Table", { ID: 0 }.jmap(), null);
46-
// 1 = autoIncrementID , 2048 bytes=fixed length [optional]
47-
server.ensureParametersSync("Table", 1, 2048);
46+
// 1 = autoIncrementID [optional]
47+
server.ensureParametersSync("Table", 1);
4848
var db = server.openSync();
4949

5050
// supports unstructured data insert and query
5151
db.insertSync("Table", { value: "hello db" }.jmap());
52-
db.insertSync("Table", { name: "iBoxDB", version: "1.5.2 java" }.jmap());
52+
db.insertSync("Table", { name: "iBoxDB", version: "1.6 java" }.jmap());
5353
db.insertSync("Table", { product: "iBoxDB", size: 200 }.jmap());
5454

5555
console.log("*Find");

0 commit comments

Comments
 (0)