Ticket #1483: MemFill.java

File MemFill.java, 2.3 KB (added by Dimitar Misev, 7 years ago)
Line 
1import org.odmg.Database;
2import org.odmg.ODMGException;
3import org.odmg.OQLQuery;
4import org.odmg.Transaction;
5
6import rasj.RasException;
7import rasj.RasImplementation;
8import rasj.RasMArrayShort;
9import rasj.RasMInterval;
10
11public class MemFill {
12 private static String server = "localhost";
13 private static String port = "7001";
14 private static String base = "RASBASE";
15 private static String user = "rasadmin";
16 private static String password = "rasadmin";
17
18 private static int getIndex(int cols, int row, int col) {
19 return (row * cols) + col;
20 }
21
22 public static void main(String[] args) {
23 Database database = null;
24 Transaction transaction = null;
25 try {
26 RasImplementation app = new RasImplementation("http://" + server + ":" + port);
27 app.setUserIdentification(user, password);
28
29 database = app.newDatabase();
30 database.open(base, Database.OPEN_READ_WRITE);
31
32 int minRow = 0;
33 int maxRow = 900;
34 int minCol = 0;
35 int maxCol = 900;
36 short value = 0;
37 short[] rawData = new short[maxRow * maxCol];
38 for (int row = minRow; row < maxRow; row++) {
39 for (int col = minCol; col < maxCol; col++) {
40 rawData[getIndex(maxCol, row, col)] = value;
41 value = (short) (value + 1);
42 }
43 }
44
45 for (int day = 1; day <= 31; day++) {
46 for (int hour = 0; hour <= 23; hour++) {
47 System.out.println("Update data for day=" + day + " hour=" + hour);
48
49 transaction = app.newTransaction();
50 transaction.begin();
51
52 String interval = String.format("[%d:%d, %d:%d]", minRow, maxRow - 1, minCol, maxCol - 1);
53 RasMArrayShort data = new RasMArrayShort(new RasMInterval(interval));
54 data.setObjectTypeName("MemTest");
55 data.setArray(rawData);
56
57 OQLQuery updateQuery = app.newOQLQuery();
58 updateQuery.create("update MemTestData as c set c[$1, $2, $3, $4, $5, *:*, *:*] assign $6");
59 updateQuery.bind(2016);
60 updateQuery.bind(12);
61 updateQuery.bind(day);
62 updateQuery.bind(hour);
63 updateQuery.bind(0);
64 updateQuery.bind(data);
65 updateQuery.execute();
66
67 transaction.commit();
68 }
69 }
70 } catch (ODMGException e) {
71 e.printStackTrace();
72 if (transaction != null) {
73 transaction.abort();
74 }
75 } catch (RasException e) {
76 e.printStackTrace();
77 } finally {
78 if (database != null) {
79 try {
80 database.close();
81 } catch (ODMGException e) {
82 e.printStackTrace();
83 }
84 }
85 }
86 }
87}