Statistics
| Revision:

root / trunk / libraries / libGDBMS / src / main / java / com / hardcode / gdbms / driver / hsqldb / HSQLDBDriver.java @ 4436

History | View | Annotate | Download (6.75 KB)

1
package com.hardcode.gdbms.driver.hsqldb;
2

    
3
import com.hardcode.gdbms.engine.data.DataSourceFactory;
4
import com.hardcode.gdbms.engine.data.db.JDBCSupport;
5
import com.hardcode.gdbms.engine.data.driver.AlphanumericDBDriver;
6
import com.hardcode.gdbms.engine.data.driver.DriverException;
7
import com.hardcode.gdbms.engine.values.Value;
8
import com.hardcode.gdbms.engine.values.ValueWriter;
9

    
10
import java.sql.Connection;
11
import java.sql.Date;
12
import java.sql.DriverManager;
13
import java.sql.SQLException;
14
import java.sql.Time;
15
import java.sql.Timestamp;
16

    
17
import java.text.DateFormat;
18
import java.text.SimpleDateFormat;
19

    
20
import java.util.HashMap;
21

    
22

    
23
/**
24
 * DOCUMENT ME!
25
 *
26
 * @author Fernando Gonz?lez Cort?s
27
 */
28
public class HSQLDBDriver implements AlphanumericDBDriver {
29
    private static Exception driverException;
30
    private static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
31
    private static DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
32
    private static DateFormat timestampFormat = new SimpleDateFormat(
33
            "yyyy-MM-dd HH:mm:ss.SSSSSSSSS");
34
  
35
    static {
36
        try {
37
            Class.forName("org.hsqldb.jdbcDriver").newInstance();
38
        } catch (Exception ex) {
39
            driverException = ex;
40
        }
41
    }
42

    
43
    private ValueWriter vWriter = ValueWriter.internalValueWriter;
44
    protected JDBCSupport jdbcSupport;
45
    private Connection con = null;
46
    
47
    /**
48
     * @see com.hardcode.gdbms.engine.data.driver.DBDriver#getConnection(java.lang.String,
49
     *      int, java.lang.String, java.lang.String, java.lang.String)
50
     */
51
    public Connection getConnection(String host, int port, String dbName,
52
        String user, String password) throws SQLException {
53
        if (driverException != null) {
54
            throw new RuntimeException(driverException);
55
        }
56

    
57
        String connectionString = "jdbc:hsqldb:file:" + dbName;
58
        if (con == null){
59
                con = DriverManager.getConnection(connectionString, user, password);
60
        }
61
        return con;
62
    }
63

    
64
    /**
65
     * @see com.hardcode.gdbms.engine.data.driver.DBDriver#open(java.sql.Connection,
66
     *      java.lang.String, com.hardcode.gdbms.engine.data.HasProperties)
67
     */
68
    public void open(Connection con, String sql) throws SQLException {
69
        jdbcSupport = JDBCSupport.newJDBCSupport(con, sql);
70
    }
71

    
72
    /**
73
     * @see com.hardcode.gdbms.engine.data.driver.DBDriver#execute(java.sql.Connection,
74
     *      java.lang.String, com.hardcode.gdbms.engine.data.HasProperties)
75
     */
76
    public void execute(Connection con, String sql) throws SQLException {
77
        JDBCSupport.execute(con, sql);
78
    }
79

    
80
    /**
81
     * @see com.hardcode.gdbms.engine.data.driver.DBDriver#close()
82
     */
83
    public void close() throws SQLException {
84
        jdbcSupport.close();
85
    }
86

    
87
    /**
88
     * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldValue(long,
89
     *      int)
90
     */
91
    public Value getFieldValue(long rowIndex, int fieldId)
92
        throws DriverException {
93
        return jdbcSupport.getFieldValue(rowIndex, fieldId);
94
    }
95

    
96
    /**
97
     * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldCount()
98
     */
99
    public int getFieldCount() throws DriverException {
100
        return jdbcSupport.getFieldCount();
101
    }
102

    
103
    /**
104
     * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldName(int)
105
     */
106
    public String getFieldName(int fieldId) throws DriverException {
107
        return jdbcSupport.getFieldName(fieldId);
108
    }
109

    
110
    /**
111
     * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getRowCount()
112
     */
113
    public long getRowCount() throws DriverException {
114
        return jdbcSupport.getRowCount();
115
    }
116

    
117
    /**
118
     * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldType(int)
119
     */
120
    public int getFieldType(int i) throws DriverException {
121
        return jdbcSupport.getFieldType(i);
122
    }
123

    
124
    /**
125
     * @see com.hardcode.driverManager.Driver#getName()
126
     */
127
    public String getName() {
128
        return "GDBMS HSQLDB driver";
129
    }
130

    
131
    /**
132
     * @see com.hardcode.gdbms.engine.data.driver.DriverCommons#getDriverProperties()
133
     */
134
    public HashMap getDriverProperties() {
135
        return null;
136
    }
137

    
138
    /**
139
     * @see com.hardcode.gdbms.engine.data.driver.DriverCommons#setDataSourceFactory(com.hardcode.gdbms.engine.data.DataSourceFactory)
140
     */
141
    public void setDataSourceFactory(DataSourceFactory dsf) {
142
    }
143

    
144
    /**
145
     * @see com.hardcode.gdbms.engine.data.driver.DBDriver#getInternalTableName(java.lang.String)
146
     */
147
    public String getInternalTableName(String tableName) {
148
        return tableName.toUpperCase();
149
    }
150

    
151
    /**
152
     * DOCUMENT ME!
153
     *
154
     * @return DOCUMENT ME!
155
     */
156
    public String getNullStatementString() {
157
        return vWriter.getNullStatementString();
158
    }
159

    
160
    /**
161
     * DOCUMENT ME!
162
     *
163
     * @param b DOCUMENT ME!
164
     *
165
     * @return DOCUMENT ME!
166
     */
167
    public String getStatementString(boolean b) {
168
        return vWriter.getStatementString(b);
169
    }
170

    
171
    /**
172
     * DOCUMENT ME!
173
     *
174
     * @param binary DOCUMENT ME!
175
     *
176
     * @return DOCUMENT ME!
177
     */
178
    public String getStatementString(byte[] binary) {
179
        return vWriter.getStatementString(binary);
180
    }
181

    
182
    /**
183
     * DOCUMENT ME!
184
     *
185
     * @param d DOCUMENT ME!
186
     *
187
     * @return DOCUMENT ME!
188
     */
189
    public String getStatementString(Date d) {
190
        return vWriter.getStatementString(d);
191
    }
192

    
193
    /**
194
     * DOCUMENT ME!
195
     *
196
     * @param d DOCUMENT ME!
197
     * @param sqlType DOCUMENT ME!
198
     *
199
     * @return DOCUMENT ME!
200
     */
201
    public String getStatementString(double d, int sqlType) {
202
        return vWriter.getStatementString(d, sqlType);
203
    }
204

    
205
    /**
206
     * DOCUMENT ME!
207
     *
208
     * @param i DOCUMENT ME!
209
     * @param sqlType DOCUMENT ME!
210
     *
211
     * @return DOCUMENT ME!
212
     */
213
    public String getStatementString(int i, int sqlType) {
214
        return vWriter.getStatementString(i, sqlType);
215
    }
216

    
217
    /**
218
     * DOCUMENT ME!
219
     *
220
     * @param i DOCUMENT ME!
221
     *
222
     * @return DOCUMENT ME!
223
     */
224
    public String getStatementString(long i) {
225
        return vWriter.getStatementString(i);
226
    }
227

    
228
    /**
229
     * DOCUMENT ME!
230
     *
231
     * @param str DOCUMENT ME!
232
     * @param sqlType DOCUMENT ME!
233
     *
234
     * @return DOCUMENT ME!
235
     */
236
    public String getStatementString(String str, int sqlType) {
237
        return vWriter.getStatementString(str, sqlType);
238
    }
239

    
240
    /**
241
     * DOCUMENT ME!
242
     *
243
     * @param t DOCUMENT ME!
244
     *
245
     * @return DOCUMENT ME!
246
     */
247
    public String getStatementString(Time t) {
248
        return vWriter.getStatementString(t);
249
    }
250

    
251
    /**
252
     * DOCUMENT ME!
253
     *
254
     * @param ts DOCUMENT ME!
255
     *
256
     * @return DOCUMENT ME!
257
     */
258
    public String getStatementString(Timestamp ts) {
259
        return vWriter.getStatementString(ts);
260
    }
261
}