Samples.java
biz/hammurapi/sql/Samples.java
Violations
Inspector |
Message |
Severity |
Location |
Java Inspector 048 |
Copyrights information should be present in each file. |
1 |
|
Java Inspector 058 |
Make inner classes "private" |
1 |
149:15
|
Java Inspector 058 |
Make inner classes "private" |
1 |
202:9
|
Java Inspector 015 |
Do not change parameter value. For comprehensibility, formal parameters should be final |
2 |
99:54
|
Java Inspector 015 |
Do not change parameter value. For comprehensibility, formal parameters should be final |
2 |
119:46
|
Java Inspector 015 |
Do not change parameter value. For comprehensibility, formal parameters should be final |
2 |
120:46
|
Java Inspector 015 |
Do not change parameter value. For comprehensibility, formal parameters should be final |
2 |
129:54
|
Java Inspector 015 |
Do not change parameter value. For comprehensibility, formal parameters should be final |
2 |
195:59
|
Java Inspector 015 |
Do not change parameter value. For comprehensibility, formal parameters should be final |
2 |
229:59
|
Java Inspector 049 |
Use a Collection instead of arrays Object[] |
2 |
94:17
|
Java Inspector 068 |
Do not use System.out and System.err to output logging messages. Use loggers instead. |
2 |
76:43
|
Java Inspector 068 |
Do not use System.out and System.err to output logging messages. Use loggers instead. |
2 |
87:51
|
Java Inspector 089 |
Type is not documented |
2 |
40:1
|
Java Inspector 089 |
Undocumented method |
2 |
42:9
|
Java Inspector 089 |
Non-private, non-local types shall be documented |
2 |
51:19
|
Java Inspector 089 |
Undocumented method |
2 |
64:41
|
Java Inspector 089 |
Undocumented method |
2 |
86:25
|
Java Inspector 089 |
Undocumented method |
2 |
98:33
|
Java Inspector 089 |
Undocumented method |
2 |
104:33
|
Java Inspector 089 |
Undocumented method |
2 |
118:25
|
Java Inspector 089 |
Undocumented method |
2 |
128:33
|
Java Inspector 089 |
Undocumented method |
2 |
134:33
|
Java Inspector 089 |
Undocumented method |
2 |
141:33
|
Java Inspector 089 |
Non-private, non-local types shall be documented |
2 |
149:15
|
Java Inspector 089 |
Undocumented constructor |
2 |
153:17
|
Java Inspector 089 |
Undocumented method |
2 |
157:17
|
Java Inspector 089 |
Undocumented method |
2 |
160:17
|
Java Inspector 089 |
Undocumented method |
2 |
163:17
|
Java Inspector 089 |
Undocumented method |
2 |
166:17
|
Java Inspector 089 |
Undocumented method |
2 |
194:41
|
Java Inspector 089 |
Non-private, non-local types shall be documented |
2 |
202:9
|
Java Inspector 089 |
Undocumented method |
2 |
206:17
|
Java Inspector 089 |
Undocumented method |
2 |
209:17
|
Java Inspector 089 |
Undocumented method |
2 |
212:17
|
Java Inspector 089 |
Undocumented method |
2 |
215:17
|
Java Inspector 089 |
Undocumented method |
2 |
228:41
|
Java Inspector 025 |
Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] |
3 |
184:98
|
Java Inspector 025 |
Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] |
3 |
184:101
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
61:33
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
73:41
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
74:48
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
85:41
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
87:62
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
87:68
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
87:85
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
96:25
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
99:61
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
105:61
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
126:25
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
136:57
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
143:49
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
173:48
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
177:37
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
181:37
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
184:37
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
188:73
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
192:33
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
222:34
|
Java Inspector 026 |
Avoid hardwired string literals. Allowed literals: [] |
3 |
226:33
|
Java Inspector 051 |
It is good practice to call in any case super() in a constructor. |
3 |
153:17
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package biz.hammurapi.sql;
24
25import java.sql.PreparedStatement;
26import java.sql.ResultSet;
27import java.sql.SQLException;
28import java.util.ArrayList;
29import java.util.Collection;
30import java.util.Iterator;
31
32import javax.sql.DataSource;
33
34import biz.hammurapi.sql.hsqldb.HsqldbStandaloneDataSource;
35
36
37
38
39
40public class Samples {
41
42 public static void main(String[] args) throws Exception {
43 sample1();
44 }
45
46 private static final String CREATE_TABLE_SQL=
47 "CREATE CACHED TABLE PERSON " +
48 "(ID INTEGER IDENTITY NOT NULL PRIMARY KEY, " +
49 "FIRST_NAME VARCHAR(30), LAST_NAME VARCHAR(30))";
50
51 interface Person {
52 String getFirstName();
53 String getLastName();
54
55 void setFirstName(String firstName);
56 void setLastName(String lastName);
57 }
58
59 private static void sample1() throws Exception {
60 DataSource dataSource=new HsqldbStandaloneDataSource(
61 "People",
62 new Transaction() {
63
64 public boolean execute(SQLProcessor processor) throws SQLException {
65 processor.processUpdate(CREATE_TABLE_SQL, null);
66 return true;
67 }
68
69 });
70
71 SQLProcessor processor=new SQLProcessor(dataSource, null);
72
73 processor.processUpdate("INSERT INTO PERSON (FIRST_NAME, LAST_NAME) VALUES ('Pavel', 'Vlasov')", null);
74 Iterator it= processor.project("SELECT * FROM PERSON", null, Person.class).iterator();
75 while (it.hasNext()) {
76 System.out.println(it.next());
77 }
78
79 sample2(processor);
80
81
82 }
83
84 private static void sample2(SQLProcessor processor) throws SQLException {
85 processor.processSelect("SELECT * FROM PERSON", null, new RowProcessor() {
86 public boolean process(ResultSet rs) throws SQLException {
87 System.out.println(rs.getInt("ID")+" "+rs.getString("LAST_NAME"));
88 return true;
89 }
90 });
91 }
92
93 private static String sample3(SQLProcessor processor) throws SQLException {
94 final String[] ret={null};
95 processor.processSelect(
96 "SELECT * FROM PERSON WHERE LAST_NAME=?",
97 new Parameterizer() {
98 public int parameterize(PreparedStatement ps, int idx) throws SQLException {
99 ps.setString(idx++, "VLASOV");
100 return idx;
101 }
102 },
103 new RowProcessor() {
104 public boolean process(ResultSet rs) throws SQLException {
105 ret[0]=rs.getString("LAST_NAME");
106 return false;
107 }
108 });
109 return ret[0];
110 }
111
112 private static void updateOrInsert(
113 final SQLProcessor processor,
114 final String firstName,
115 final String lastName)
116 throws SQLException {
117 final Parameterizer parameterizer=new Parameterizer() {
118 public int parameterize(PreparedStatement ps, int idx) throws SQLException {
119 ps.setString(idx++, firstName);
120 ps.setString(idx++, lastName);
121 return idx;
122 }
123 };
124
125 processor.processSelect(
126 "SELECT * FROM PERSON WHERE LAST_NAME=?",
127 new Parameterizer() {
128 public int parameterize(PreparedStatement ps, int idx) throws SQLException {
129 ps.setString(idx++, lastName);
130 return idx;
131 }
132 },
133 new RowProcessorEx() {
134 public boolean process(ResultSet rs) throws SQLException {
135 processor.processUpdate(
136 "UPDATE PERSON SET FIRST_NAME=? WHERE LAST_NAME=?",
137 parameterizer);
138 return false;
139 }
140
141 public void onEmptyResultSet() throws SQLException {
142 processor.processUpdate(
143 "INSERT INTO PERSON (FIRST_NAME, LAST_NAME) VALUES (?, ?)",
144 parameterizer);
145 }
146 });
147 }
148
149 class Person2 {
150 private String firstName;
151 private String lastName;
152
153 public Person2(String firstName, String lastName) {
154 this.firstName=firstName;
155 this.lastName=lastName;
156 }
157 public String getFirstName() {
158 return firstName;
159 }
160 public void setFirstName(String firstName) {
161 this.firstName = firstName;
162 }
163 public String getLastName() {
164 return lastName;
165 }
166 public void setLastName(String lastName) {
167 this.lastName = lastName;
168 }
169 }
170
171 private static void projection(SQLProcessor processor, final int personId) throws Exception {
172
173 Collection c=processor.project("SELECT * FROM PERSON");
174
175
176 Projector projector=new ConstructorProjector(Person2.class.getConstructor(new Class[] {String.class, String.class}), null);
177 c=processor.project("SELECT FIRST_NAME, LAST_NAME FROM PERSON", null, projector, new ArrayList());
178
179
180 projector=new PropertyProjector(Person2.class, null, null);
181 c=processor.project("SELECT FIRST_NAME, LAST_NAME FROM PERSON", null, projector);
182
183
184 c=processor.project("SELECT * FROM PERSON", null, Person.class, new ArrayList(), 3, 15);
185
186
187 projector=new PropertyProjector(Person2.class, null, null);
188 Person2 person2=(Person2) processor.projectSingleObject("SELECT * FROM PERSON WHERE ID=2", null, projector);
189
190
191 Person person=(Person) processor.projectSingleObject(
192 "SELECT * FROM PERSON WHERE ID=?",
193 new Parameterizer() {
194 public int parameterize(PreparedStatement ps, int idx) throws SQLException {
195 ps.setInt(idx++, personId);
196 return idx;
197 }
198 },
199 Person.class);
200 }
201
202 static class Person3 {
203 private String firstName;
204 private String lastName;
205
206 public String getFirstName() {
207 return firstName;
208 }
209 public void setFirstName(String firstName) {
210 this.firstName = firstName;
211 }
212 public String getLastName() {
213 return lastName;
214 }
215 public void setLastName(String lastName) {
216 this.lastName = lastName;
217 }
218 }
219
220 private static void injection(SQLProcessor processor, final int personId) throws Exception {
221 Person3 person=new Person3();
222 processor.inject("SELECT * FROM PERSON WHERE ID=2", null, null, person);
223
224
225 processor.inject(
226 "SELECT * FROM PERSON WHERE ID=?",
227 new Parameterizer() {
228 public int parameterize(PreparedStatement ps, int idx) throws SQLException {
229 ps.setInt(idx++, personId);
230 return idx;
231 }
232 },
233 null,
234 person);
235 }
236}
237