You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2016/03/05 09:21:50 UTC
[2/6] cayenne git commit: CAY-2050 parameter binding with better
encapsulation
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
index 24f06b8..d93d91d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
@@ -21,16 +21,12 @@ package org.apache.cayenne.dba.oracle;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DataNode;
-import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.Binding;
import org.apache.cayenne.access.translator.ejbql.EJBQLTranslatorFactory;
import org.apache.cayenne.access.translator.select.QualifierTranslator;
import org.apache.cayenne.access.translator.select.QueryAssembler;
import org.apache.cayenne.access.translator.select.SelectTranslator;
-import org.apache.cayenne.access.types.ByteType;
-import org.apache.cayenne.access.types.ExtendedType;
-import org.apache.cayenne.access.types.ExtendedTypeFactory;
-import org.apache.cayenne.access.types.ExtendedTypeMap;
-import org.apache.cayenne.access.types.ShortType;
+import org.apache.cayenne.access.types.*;
import org.apache.cayenne.configuration.Constants;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -40,20 +36,11 @@ import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.merge.MergerFactory;
-import org.apache.cayenne.query.BatchQuery;
-import org.apache.cayenne.query.InsertBatchQuery;
-import org.apache.cayenne.query.Query;
-import org.apache.cayenne.query.SQLAction;
-import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.query.UpdateBatchQuery;
+import org.apache.cayenne.query.*;
import org.apache.cayenne.resource.ResourceLocator;
import java.lang.reflect.Field;
-import java.sql.CallableStatement;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Types;
+import java.sql.*;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -231,16 +218,16 @@ public class OracleAdapter extends JdbcAdapter {
}
@Override
- public void bindParameter(PreparedStatement statement, ParameterBinding binding)
+ public void bindParameter(PreparedStatement statement, Binding binding)
throws SQLException, Exception {
// Oracle doesn't support BOOLEAN even when binding NULL, so have to
// intercept
// NULL Boolean here, as super doesn't pass it through ExtendedType...
- if (binding.getValue() == null && binding.getAttribute().getType() == Types.BOOLEAN) {
+ if (binding.getValue() == null && binding.getType() == Types.BOOLEAN) {
ExtendedType typeProcessor = getExtendedTypes().getRegisteredType(Boolean.class);
typeProcessor.setJdbcObject(statement, binding.getValue(), binding.getStatementPosition(), binding
- .getAttribute().getType(),binding.getAttribute().getScale());
+ .getType(),binding.getScale());
} else {
super.bindParameter(statement, binding);
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
index e4c7eff..5e61b89 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.dba.postgres;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DataNode;
-import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.Binding;
import org.apache.cayenne.access.translator.select.QualifierTranslator;
import org.apache.cayenne.access.translator.select.QueryAssembler;
import org.apache.cayenne.access.translator.select.SelectTranslator;
@@ -131,7 +131,7 @@ public class PostgresAdapter extends JdbcAdapter {
}
@Override
- public void bindParameter(PreparedStatement statement, ParameterBinding binding)
+ public void bindParameter(PreparedStatement statement, Binding binding)
throws SQLException, Exception {
binding.setType(mapNTypes(binding.getType()));
super.bindParameter(statement, binding);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java
index 29afb68..839b548 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java
@@ -19,7 +19,6 @@
package org.apache.cayenne.dba.sqlite;
import org.apache.cayenne.access.DataNode;
-import org.apache.cayenne.access.translator.ParameterBinding;
import org.apache.cayenne.access.types.ExtendedType;
import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
@@ -34,8 +33,6 @@ import org.apache.cayenne.query.Query;
import org.apache.cayenne.query.SQLAction;
import org.apache.cayenne.resource.ResourceLocator;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
import java.sql.Types;
import java.util.Calendar;
import java.util.Collection;
@@ -102,11 +99,6 @@ public class SQLiteAdapter extends JdbcAdapter {
return query.createSQLAction(new SQLiteActionBuilder(node));
}
- @Override
- public void bindParameter(PreparedStatement statement, ParameterBinding binding) throws SQLException, Exception {
- super.bindParameter(statement, binding);
- }
-
private int mapNTypes(int sqlType) {
switch (sqlType) {
case Types.NCHAR : return Types.CHAR;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
index b7592d4..e31fd50 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
@@ -19,15 +19,9 @@
package org.apache.cayenne.dba.sybase;
-import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.Binding;
import org.apache.cayenne.access.translator.ejbql.EJBQLTranslatorFactory;
-import org.apache.cayenne.access.types.ByteArrayType;
-import org.apache.cayenne.access.types.ByteType;
-import org.apache.cayenne.access.types.CharType;
-import org.apache.cayenne.access.types.ExtendedType;
-import org.apache.cayenne.access.types.ExtendedTypeFactory;
-import org.apache.cayenne.access.types.ExtendedTypeMap;
-import org.apache.cayenne.access.types.ShortType;
+import org.apache.cayenne.access.types.*;
import org.apache.cayenne.configuration.Constants;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.DefaultQuotingStrategy;
@@ -110,19 +104,19 @@ public class SybaseAdapter extends JdbcAdapter {
}
@Override
- public void bindParameter(PreparedStatement statement, ParameterBinding binding)
+ public void bindParameter(PreparedStatement statement, Binding binding)
throws SQLException, Exception {
// Sybase driver doesn't like CLOBs and BLOBs as parameters
if (binding.getValue() == null) {
- if (binding.getAttribute().getType() == Types.CLOB) {
- binding.getAttribute().setType(Types.VARCHAR);
- } else if (binding.getAttribute().getType() == Types.BLOB) {
- binding.getAttribute().setType(Types.VARBINARY);
+ if (binding.getType() == Types.CLOB) {
+ binding.setType(Types.VARCHAR);
+ } else if (binding.getType() == Types.BLOB) {
+ binding.setType(Types.VARBINARY);
}
}
- if (binding.getValue() == null && binding.getAttribute().getType() == 0) {
+ if (binding.getValue() == null && binding.getType() == 0) {
statement.setNull(binding.getStatementPosition(), Types.VARCHAR);
} else {
super.bindParameter(statement, binding);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/main/java/org/apache/cayenne/log/CommonsJdbcEventLogger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/CommonsJdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/CommonsJdbcEventLogger.java
index 6908fcc..f9351bf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/log/CommonsJdbcEventLogger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/log/CommonsJdbcEventLogger.java
@@ -26,7 +26,7 @@ import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ExtendedEnumeration;
import org.apache.cayenne.access.jdbc.SQLParameterBinding;
-import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.DbAttributeBinding;
import org.apache.cayenne.configuration.Constants;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.conn.DataSourceInfo;
@@ -227,7 +227,7 @@ public class CommonsJdbcEventLogger implements JdbcEventLogger {
/**
* @deprecated since 4.0 use
- * {@link #logQuery(String, ParameterBinding[], long)}.
+ * {@link #logQuery(String, DbAttributeBinding[], long)}.
*/
@Deprecated
@Override
@@ -295,7 +295,7 @@ public class CommonsJdbcEventLogger implements JdbcEventLogger {
}
@Override
- public void logQuery(String sql, ParameterBinding[] bindings, long translatedIn) {
+ public void logQuery(String sql, DbAttributeBinding[] bindings, long translatedIn) {
if (isLoggable()) {
StringBuilder buffer = new StringBuilder(sql).append(" ");
@@ -335,7 +335,7 @@ public class CommonsJdbcEventLogger implements JdbcEventLogger {
}
@Override
- public void logQueryParameters(String label, ParameterBinding[] bindings) {
+ public void logQueryParameters(String label, DbAttributeBinding[] bindings) {
if (isLoggable() && bindings.length > 0) {
@@ -348,7 +348,7 @@ public class CommonsJdbcEventLogger implements JdbcEventLogger {
}
}
- private void appendParameters(StringBuilder buffer, String label, ParameterBinding[] bindings) {
+ private void appendParameters(StringBuilder buffer, String label, DbAttributeBinding[] bindings) {
int len = bindings.length;
if (len > 0) {
@@ -356,7 +356,7 @@ public class CommonsJdbcEventLogger implements JdbcEventLogger {
boolean hasIncluded = false;
for (int i = 0, j = 1; i < len; i++) {
- ParameterBinding b = bindings[i];
+ DbAttributeBinding b = bindings[i];
if (b.isExcluded()) {
continue;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/main/java/org/apache/cayenne/log/JdbcEventLogger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/JdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/JdbcEventLogger.java
index 49ad655..5ada199 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/log/JdbcEventLogger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/log/JdbcEventLogger.java
@@ -20,7 +20,7 @@ package org.apache.cayenne.log;
import java.util.List;
-import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.DbAttributeBinding;
import org.apache.cayenne.conn.DataSourceInfo;
import org.apache.cayenne.map.DbAttribute;
@@ -77,14 +77,14 @@ public interface JdbcEventLogger {
/**
* @deprecated since 4.0 use
- * {@link #logQuery(String, ParameterBinding[], long)}.
+ * {@link #logQuery(String, DbAttributeBinding[], long)}.
*/
@Deprecated
void logQuery(String sql, List<?> params);
/**
* @deprecated since 4.0 use
- * {@link #logQuery(String, ParameterBinding[], long)}.
+ * {@link #logQuery(String, DbAttributeBinding[], long)}.
*/
@Deprecated
void logQuery(String sql, List<DbAttribute> attrs, List<?> params, long time);
@@ -92,16 +92,16 @@ public interface JdbcEventLogger {
/**
* @since 4.0
*/
- void logQuery(String sql, ParameterBinding[] bindings, long translatedIn);
+ void logQuery(String sql, DbAttributeBinding[] bindings, long translatedIn);
/**
* @since 4.0
*/
- void logQueryParameters(String label, ParameterBinding[] bindings);
+ void logQueryParameters(String label, DbAttributeBinding[] bindings);
/**
* @deprecated since 4.0 in favor of
- * {@link #logQueryParameters(String, ParameterBinding[])}
+ * {@link #logQueryParameters(String, DbAttributeBinding[])}
*/
@Deprecated
void logQueryParameters(String label, List<DbAttribute> attrs, List<Object> parameters, boolean isInserting);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/main/java/org/apache/cayenne/log/NoopJdbcEventLogger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/NoopJdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/NoopJdbcEventLogger.java
index 8a56d94..1ed2252 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/log/NoopJdbcEventLogger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/log/NoopJdbcEventLogger.java
@@ -20,7 +20,7 @@ package org.apache.cayenne.log;
import java.util.List;
-import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.DbAttributeBinding;
import org.apache.cayenne.conn.DataSourceInfo;
import org.apache.cayenne.map.DbAttribute;
@@ -82,7 +82,7 @@ public class NoopJdbcEventLogger implements JdbcEventLogger {
}
@Override
- public void logQuery(String sql, ParameterBinding[] bindings, long translatedIn) {
+ public void logQuery(String sql, DbAttributeBinding[] bindings, long translatedIn) {
}
@Override
@@ -91,7 +91,7 @@ public class NoopJdbcEventLogger implements JdbcEventLogger {
}
@Override
- public void logQueryParameters(String label, ParameterBinding[] bindings) {
+ public void logQueryParameters(String label, DbAttributeBinding[] bindings) {
}
@Override
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2d3f999b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
index 0fdc48b..a1998be 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
@@ -19,7 +19,7 @@
package org.apache.cayenne.access.translator.batch;
-import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.DbAttributeBinding;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.di.AdhocObjectFactory;
@@ -55,13 +55,13 @@ public class DefaultBatchTranslatorIT extends ServerCase {
}
@Override
- protected ParameterBinding[] createBindings() {
- return new ParameterBinding[0];
+ protected DbAttributeBinding[] createBindings() {
+ return new DbAttributeBinding[0];
}
@Override
- protected ParameterBinding[] doUpdateBindings(BatchQueryRow row) {
- return new ParameterBinding[0];
+ protected DbAttributeBinding[] doUpdateBindings(BatchQueryRow row) {
+ return new DbAttributeBinding[0];
}
};
@@ -81,13 +81,13 @@ public class DefaultBatchTranslatorIT extends ServerCase {
}
@Override
- protected ParameterBinding[] createBindings() {
- return new ParameterBinding[0];
+ protected DbAttributeBinding[] createBindings() {
+ return new DbAttributeBinding[0];
}
@Override
- protected ParameterBinding[] doUpdateBindings(BatchQueryRow row) {
- return new ParameterBinding[0];
+ protected DbAttributeBinding[] doUpdateBindings(BatchQueryRow row) {
+ return new DbAttributeBinding[0];
}
};
@@ -116,13 +116,13 @@ public class DefaultBatchTranslatorIT extends ServerCase {
}
@Override
- protected ParameterBinding[] createBindings() {
- return new ParameterBinding[0];
+ protected DbAttributeBinding[] createBindings() {
+ return new DbAttributeBinding[0];
}
@Override
- protected ParameterBinding[] doUpdateBindings(BatchQueryRow row) {
- return new ParameterBinding[0];
+ protected DbAttributeBinding[] doUpdateBindings(BatchQueryRow row) {
+ return new DbAttributeBinding[0];
}
};