1
1
package org .tarantool ;
2
2
3
+ import org .tarantool .protocol .TarantoolPacket ;
4
+
3
5
import java .util .ArrayList ;
4
6
import java .util .Collections ;
5
7
import java .util .LinkedHashMap ;
6
8
import java .util .List ;
7
9
import java .util .ListIterator ;
8
10
import java .util .Map ;
9
11
10
- import org .tarantool .jdbc .SQLResultSet ;
11
- import org .tarantool .protocol .TarantoolPacket ;
12
-
13
12
public class JDBCBridge {
14
13
15
- public static final JDBCBridge EMPTY = new JDBCBridge (Collections .< TarantoolBase . SQLMetaData > emptyList (), Collections .< List < Object >> emptyList ());
14
+ public static final JDBCBridge EMPTY = new JDBCBridge (Collections .emptyList (), Collections .emptyList ());
16
15
17
16
final List <TarantoolBase .SQLMetaData > sqlMetadata ;
18
- final Map <String ,Integer > columnsByName ;
17
+ final Map <String , Integer > columnsByName ;
19
18
final List <List <Object >> rows ;
20
19
21
20
protected JDBCBridge (TarantoolPacket pack ) {
@@ -31,33 +30,49 @@ protected JDBCBridge(List<TarantoolBase.SQLMetaData> sqlMetadata, List<List<Obje
31
30
}
32
31
}
33
32
34
- public static JDBCBridge query (TarantoolConnection connection , String sql , Object ... params ) {
33
+ public static JDBCBridge query (TarantoolConnection connection , String sql , Object ... params ) {
35
34
TarantoolPacket pack = connection .sql (sql , params );
36
35
return new JDBCBridge (pack );
37
36
}
38
37
39
- public static int update (TarantoolConnection connection , String sql , Object ... params ) {
38
+ public static int update (TarantoolConnection connection , String sql , Object ... params ) {
40
39
return connection .update (sql , params ).intValue ();
41
40
}
42
41
43
- public static JDBCBridge mock (List <String > fields , List <List <Object >> values ) {
44
- List <TarantoolBase .SQLMetaData > meta = new ArrayList <TarantoolBase .SQLMetaData >(fields .size ());
45
- for (String field : fields ) {
46
- meta .add (new TarantoolBase .SQLMetaData (field ));
42
+ /**
43
+ * Constructs a JDBCBridge with a predefined data.
44
+ *
45
+ * @param fields fields metadata
46
+ * @param values tuples
47
+ *
48
+ * @return bridge
49
+ */
50
+ public static JDBCBridge mock (List <String > fields , List <List <Object >> values ) {
51
+ List <TarantoolBase .SQLMetaData > meta = new ArrayList <>(fields .size ());
52
+ for (String field : fields ) {
53
+ meta .add (new TarantoolBase .SQLMetaData (field ));
47
54
}
48
55
return new JDBCBridge (meta , values );
49
56
}
50
57
51
- public static Object execute (TarantoolConnection connection , String sql , Object ... params ) {
58
+ /**
59
+ * Constructs a JDBCBridge with a parsed query result.
60
+ *
61
+ * @param connection connection to be used
62
+ * @param sql query string
63
+ * @param params query binding parameters
64
+ *
65
+ * @return bridge
66
+ */
67
+ public static Object execute (TarantoolConnection connection , String sql , Object ... params ) {
52
68
TarantoolPacket pack = connection .sql (sql , params );
53
69
Long rowCount = SqlProtoUtils .getSqlRowCount (pack );
54
- if (rowCount == null ) {
70
+ if (rowCount == null ) {
55
71
return new JDBCBridge (pack );
56
72
}
57
73
return rowCount .intValue ();
58
74
}
59
75
60
-
61
76
public String getColumnName (int columnIndex ) {
62
77
return columnIndex > sqlMetadata .size () ? null : sqlMetadata .get (columnIndex - 1 ).getName ();
63
78
}
@@ -81,9 +96,10 @@ public int size() {
81
96
@ Override
82
97
public String toString () {
83
98
return "JDBCBridge{" +
84
- "sqlMetadata=" + sqlMetadata +
85
- ", columnsByName=" + columnsByName +
86
- ", rows=" + rows +
87
- '}' ;
99
+ "sqlMetadata=" + sqlMetadata +
100
+ ", columnsByName=" + columnsByName +
101
+ ", rows=" + rows +
102
+ '}' ;
88
103
}
104
+
89
105
}
0 commit comments