View Javadoc

1   package net.sf.appstatus.batch.jdbc;
2   
3   /**
4    * Oracle-Compatible implementation.
5    * <p>
6    *
7    * <pre>
8    * &lt;bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"
9    * scope="singleton">
10   *     &lt;constructor-arg ref="dataSource" />
11   * &lt;/bean>
12   *
13   * &lt;bean id="batchDao" class="net.sf.appstatus.batch.jdbc.BatchDao"
14   * scope="singleton"> &lt;property name="jdbcTemplate" ref="jdbcTemplate" />
15   * &lt;/bean>
16   *
17   *
18   *
19   * &lt;bean id="jdbcBatchManager"
20   * class="net.sf.appstatus.batch.jdbc.JdbcBatchManager" scope="singleton">
21   * 		&lt;property name="batchDao" ref="batchDao" />
22   * &lt;/bean>
23   *
24   * </pre>
25   *
26   * Create table: BATCH
27   *
28   * <p>
29   * <table>
30   * <tr>
31   * <td>UUID_BATCH</td>
32   * <td>varchar (256)</td>
33   * </tr>
34   * <tr>
35   * <td>GROUP_BATCH</td>
36   * <td>varchar (256)</td>
37   * </tr>
38   * <tr>
39   * <td>NAME_BATCH</td>
40   * <td>varchar (256)</td>
41   * </tr>
42   * <tr>
43   * <td>START_DATE</td>
44   * <td>DATETIME</td>
45   * </tr>
46   * <tr>
47   * <td>END_DATE</td>
48   * <td>DATETIME</td>
49   * </tr>
50   * <tr>
51   * <td>UPDATED</td>
52   * <td>DATETIME</td>
53   * </tr>
54   * <tr>
55   * <td>STATUS</td>
56   * <td>varchar (64)</td>
57   * </tr>
58   * <tr>
59   * <td>SUCCESS</td>
60   * <td>BOOLEAN</td>
61   * </tr>
62   * <tr>
63   * <td>ITEMCOUNT</td>
64   * <td>LONG</td>
65   * </tr>
66   * <tr>
67   * <td>ITEM</td>
68   * <td>varchar (256)</td>
69   * </tr>
70   * </tr>
71   * <tr>
72   * <td>CURRENT_TASK</td>
73   * <td>varchar (256)</td>
74   * </tr>
75   * <tr>
76   * <td>PROGRESS</td>
77   * <td>Float</td>
78   * </tr>
79   * <tr>
80   * <td>REJECT</td>
81   * <td>CLOB</td>
82   * </tr>
83   * <tr>
84   * <td>LAST_MSG</td>
85   * <td>varchar (1024)</td>
86   * </tr>
87   * </table>
88   */
89  public class BatchDaoOracle extends BatchDao {
90  
91      @Override
92      protected String getSql(int query) {
93  
94          switch (query) {
95  
96          case BATCH_FETCH:
97              return "SELECT " //
98                      + " UUID_BATCH, ITEM, CURRENT_TASK, END_DATE, GROUP_BATCH, ITEMCOUNT, LAST_MSG, UPDATED, NAME_BATCH, PROGRESS, REJECT, START_DATE, STATUS,SUCCESS " //
99                      + "FROM ( " //
100                     + "SELECT UUID_BATCH, ITEM, CURRENT_TASK, END_DATE, GROUP_BATCH, ITEMCOUNT, LAST_MSG, UPDATED, NAME_BATCH, PROGRESS, REJECT, START_DATE, STATUS,SUCCESS FROM "
101                     + tableName + " WHERE STATUS IN ( %s )  ORDER BY UPDATED DESC " //
102                     + ") WHERE ROWNUM <= ? ";
103 
104         case BATCH_FETCH_BY_NAME:
105             return "SELECT " //
106                     + " UUID_BATCH, ITEM, CURRENT_TASK, END_DATE, GROUP_BATCH, ITEMCOUNT, LAST_MSG, UPDATED, NAME_BATCH, PROGRESS, REJECT, START_DATE, STATUS,SUCCESS " //
107                     + "FROM ( " //
108                     + "SELECT UUID_BATCH, ITEM, CURRENT_TASK, END_DATE, GROUP_BATCH, ITEMCOUNT, LAST_MSG, UPDATED, NAME_BATCH, PROGRESS, REJECT, START_DATE, STATUS,SUCCESS FROM "
109                     + tableName
110                     + " WHERE GROUP_BATCH = ? AND NAME_BATCH = ? AND STATUS IN ( %s )  ORDER BY UPDATED DESC " //
111                     + ") WHERE ROWNUM <= ? ";
112 
113         case BATCH_CREATE_TABLE:
114             return "CREATE TABLE " + tableName + " (" //
115                     + " UUID_BATCH VARCHAR2(256 BYTE) NOT NULL," //
116                     + "GROUP_BATCH VARCHAR2(256 BYTE) NULL," //
117                     + "NAME_BATCH VARCHAR2(256 BYTE) NULL," //
118                     + "START_DATE DATE  NULL," //
119                     + "END_DATE DATE NULL," //
120                     + "UPDATED DATE NULL," //
121                     + "STATUS VARCHAR2(64 BYTE) NULL," //
122                     + "SUCCESS CHAR(1) NULL," //
123                     + "ITEMCOUNT NUMBER(12) NULL," //
124                     + "ITEM VARCHAR2(256 BYTE) NULL," //
125                     + "CURRENT_TASK VARCHAR2(256 BYTE) NULL," //
126                     + "PROGRESS FLOAT(15) NULL," //
127                     + "REJECT CLOB NULL," //
128                     + "LAST_MSG VARCHAR2(1024 BYTE) NULL, " //
129                     + "PRIMARY KEY (UUID_BATCH)" + ")  ";
130 
131         case BATCH_DELETE_SUCCESS:
132             return "delete from " + tableName + " where STATUS = ? AND REJECT is NULL";
133         default:
134             return super.getSql(query);
135         }
136 
137     }
138 }