Skip to content

Commit e7fa451

Browse files
committed
Merge remote-tracking branch 'origin/master' into maintenance
2 parents ad1c2d6 + e52742b commit e7fa451

File tree

4 files changed

+28
-24
lines changed

4 files changed

+28
-24
lines changed

src/main/java/org/javawebstack/orm/SQLMapper.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package org.javawebstack.orm;
22

33
import org.javawebstack.orm.exception.ORMQueryException;
4+
import org.javawebstack.orm.mapper.DefaultMapper;
45
import org.javawebstack.orm.mapper.TypeMapper;
56

67
import java.lang.reflect.InvocationTargetException;
7-
import java.sql.Date;
88
import java.sql.ResultSet;
99
import java.sql.SQLException;
10-
import java.sql.Timestamp;
1110
import java.util.ArrayList;
1211
import java.util.HashMap;
1312
import java.util.List;
@@ -90,30 +89,10 @@ private static Object getValue(ResultSet rs, Class<?> sqlType, String tableName,
9089
} catch (SQLException ex) {
9190
return null;
9291
}
93-
if (sqlType.equals(String.class))
94-
return rs.getString(columnName);
95-
if (sqlType.equals(Short.class))
96-
return rs.getShort(columnName);
97-
if (sqlType.equals(Integer.class))
98-
return rs.getInt(columnName);
99-
if (sqlType.equals(Boolean.class))
100-
return rs.getBoolean(columnName);
101-
if (sqlType.equals(Long.class))
102-
return rs.getLong(columnName);
103-
if (sqlType.equals(Double.class))
104-
return rs.getDouble(columnName);
105-
if (sqlType.equals(Float.class))
106-
return rs.getFloat(columnName);
107-
if (sqlType.equals(Timestamp.class))
108-
return rs.getTimestamp(columnName);
109-
if (sqlType.equals(Date.class))
110-
return rs.getDate(columnName);
111-
if (sqlType.equals(byte[].class))
112-
return rs.getBytes(columnName);
92+
return rs.getObject(columnName, DefaultMapper.TYPE_MAPPING);
11393
} catch (SQLException e) {
11494
throw new ORMQueryException(e);
11595
}
116-
return null;
11796
}
11897

11998
private static <T extends Model> void setValue(Repo<T> repo, String fieldName, T entry, Object value) {

src/main/java/org/javawebstack/orm/TableInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ public Object getDefault(String fieldName) {
256256

257257
public boolean isNotNull(String fieldName) {
258258
if (idField.equals(fieldName))
259-
return false;
259+
return true;
260260
return false;
261261
}
262262

src/main/java/org/javawebstack/orm/mapper/DefaultMapper.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.sql.Date;
66
import java.sql.Timestamp;
77
import java.util.Arrays;
8+
import java.util.HashMap;
9+
import java.util.Map;
810
import java.util.UUID;
911
import java.util.stream.Collectors;
1012

@@ -25,6 +27,21 @@ public class DefaultMapper implements TypeMapper {
2527
private static final long MAX_SIZE_MEDIUMTEXT = (long) Math.floor((16777215 - BYTES_OVERHEAD_MEDIUMTEXT) / 4);
2628
private static final long MAX_SIZE_LONGTEXT = (long) Math.floor((4294967295L - BYTES_OVERHEAD_LONGTEXT) / 4);
2729

30+
public static final Map<String, Class<?>> TYPE_MAPPING = new HashMap<String, Class<?>>(){{
31+
put("FLOAT", Float.class);
32+
put("DOUBLE", Double.class);
33+
put("INT", Integer.class);
34+
put("BIGINT", Long.class);
35+
put("VARCHAR", String.class);
36+
put("TEXT", String.class);
37+
put("SHORTTEXT", String.class);
38+
put("LONGTEXT", String.class);
39+
put("TIMESTAMP", Timestamp.class);
40+
put("DATE", Date.class);
41+
put("VARBINARY", byte[].class);
42+
put("CHARARRAY", char[].class);
43+
put("TINYINT", Short.class);
44+
}};
2845

2946
public Object mapToSQL(Object source, Class<?> type) {
3047
if (source == null)

src/main/java/org/javawebstack/orm/query/QueryGroup.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ public QueryGroup<T> or(Function<QueryGroup<T>, QueryGroup<T>> group) {
4848
}
4949

5050
public QueryGroup<T> where(Object left, String condition, Object right) {
51+
if(condition.equalsIgnoreCase("=") && right == null)
52+
return whereNull(left);
53+
if(condition.equalsIgnoreCase("!=") && right == null)
54+
return whereNotNull(left);
5155
if (queryElements.size() > 0)
5256
queryElements.add(QueryConjunction.AND);
5357
queryElements.add(new QueryCondition(left instanceof String ? new QueryColumn((String) left) : left, condition, right));
@@ -107,6 +111,10 @@ public QueryGroup<T> greaterThan(Object left, Object right) {
107111
}
108112

109113
public QueryGroup<T> orWhere(Object left, String condition, Object right) {
114+
if(condition.equalsIgnoreCase("=") && right == null)
115+
return orIsNull(left);
116+
if(condition.equalsIgnoreCase("!=") && right == null)
117+
return orNotNull(left);
110118
if (queryElements.size() > 0)
111119
queryElements.add(QueryConjunction.OR);
112120
queryElements.add(new QueryCondition(left instanceof String ? new QueryColumn((String) left) : left, condition, right));

0 commit comments

Comments
 (0)