Author: rvesse
Date: Fri May 31 19:45:33 2013
New Revision: 1488367
URL: http://svn.apache.org/r1488367
Log:
Some more setObject() tests and bug fixes to the implementation
Modified:
jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java
jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java
Modified:
jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java?rev=1488367&r1=1488366&r2=1488367&view=diff
==============================================================================
---
jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java
(original)
+++
jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/statements/JenaPreparedStatement.java
Fri May 31 19:45:33 2013
@@ -21,7 +21,6 @@ package org.apache.jena.jdbc.statements;
import java.io.InputStream;
import java.io.Reader;
import java.math.BigDecimal;
-import java.math.BigInteger;
import java.net.URI;
import java.net.URL;
import java.sql.Array;
@@ -41,7 +40,6 @@ import java.sql.SQLXML;
import java.sql.Time;
import java.sql.Timestamp;
import java.sql.Types;
-import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;
@@ -55,7 +53,6 @@ import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.graph.NodeFactory;
import com.hp.hpl.jena.query.ParameterizedSparqlString;
import com.hp.hpl.jena.rdf.model.RDFNode;
-import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.sparql.util.NodeFactoryExtra;
/**
@@ -393,8 +390,14 @@ public abstract class JenaPreparedStatem
case Types.VARCHAR:
throw new SQLException("The provided SQL Target Type cannot be
translated into an appropriate RDF term type");
case Types.BIGINT:
- if (value instanceof Long || value instanceof Integer || value
instanceof Short || value instanceof Byte) {
+ if (value instanceof Long) {
this.setParameter(parameterIndex,
NodeFactoryExtra.intToNode((Long) value));
+ } else if (value instanceof Integer) {
+ this.setParameter(parameterIndex,
NodeFactoryExtra.intToNode((long)(Integer)value));
+ } else if (value instanceof Short) {
+ this.setParameter(parameterIndex,
NodeFactoryExtra.intToNode((long)(Short)value));
+ } else if (value instanceof Byte) {
+ this.setParameter(parameterIndex,
NodeFactoryExtra.intToNode((long)(Byte)value));
} else if (value instanceof Node) {
long l = JenaJdbcNodeUtils.toLong((Node) value);
this.setParameter(parameterIndex,
NodeFactoryExtra.intToNode(l));
@@ -448,8 +451,10 @@ public abstract class JenaPreparedStatem
}
break;
case Types.DOUBLE:
- if (value instanceof Double || value instanceof Float) {
+ if (value instanceof Double) {
this.setParameter(parameterIndex,
NodeFactoryExtra.doubleToNode((Double)value));
+ } else if (value instanceof Float) {
+ this.setParameter(parameterIndex,
NodeFactoryExtra.doubleToNode((double)(Float)value));
} else if (value instanceof Node) {
Double d = JenaJdbcNodeUtils.toDouble((Node)value);
this.setParameter(parameterIndex,
NodeFactoryExtra.doubleToNode(d));
@@ -522,9 +527,11 @@ public abstract class JenaPreparedStatem
this.setParameter(parameterIndex,
NodeFactory.createLiteral(value.toString()));
break;
case Types.SMALLINT:
- if (value instanceof Short || value instanceof Byte) {
+ if (value instanceof Short) {
Short s = (Short)value;
this.setParameter(parameterIndex,
NodeFactory.createLiteral(Short.toString(s), XSDDatatype.XSDshort));
+ } else if (value instanceof Byte) {
+ this.setParameter(parameterIndex,
NodeFactory.createLiteral(Short.toString((short)(Byte)value),
XSDDatatype.XSDshort));
} else if (value instanceof Node) {
Short s = JenaJdbcNodeUtils.toShort((Node)value);
this.setParameter(parameterIndex,
NodeFactory.createLiteral(Short.toString(s), XSDDatatype.XSDshort));
Modified:
jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java?rev=1488367&r1=1488366&r2=1488367&view=diff
==============================================================================
---
jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java
(original)
+++
jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java
Fri May 31 19:45:33 2013
@@ -18,7 +18,6 @@
package org.apache.jena.jdbc.connections;
import java.math.BigDecimal;
-import java.math.MathContext;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -34,7 +33,6 @@ import java.sql.Statement;
import java.sql.Time;
import java.sql.Types;
-import org.apache.jena.iri.IRI;
import org.apache.jena.iri.IRIFactory;
import org.apache.jena.jdbc.JdbcCompatibility;
import org.apache.jena.jdbc.connections.JenaConnection;
@@ -699,7 +697,6 @@ public abstract class AbstractJenaConnec
/**
* Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
* @throws SQLException
- * @throws MalformedURLException
*/
@Test
public void connection_prepared_statement_setters_14() throws SQLException
{
@@ -710,6 +707,119 @@ public abstract class AbstractJenaConnec
ParameterizedSparqlString pss = stmt.getParameterizedString();
Assert.assertTrue(pss.toString().contains("<http://example.org>"));
}
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_15() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1,
IRIFactory.iriImplementation().create("http://example.org"), Types.NVARCHAR);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("\"http://example.org\""));
+ }
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_16() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1,
IRIFactory.iriImplementation().create("http://example.org"), Types.JAVA_OBJECT);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("<http://example.org>"));
+ }
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_17() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1, 12.3f, Types.DOUBLE);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("12.3"));
+
Assert.assertFalse(pss.toString().contains(XSDDatatype.XSDfloat.getURI()));
+ }
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_18() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1, 12.3d, Types.DOUBLE);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("12.3"));
+ }
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_19() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1, 123l, Types.BIGINT);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("123"));
+ }
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_20() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1, 123, Types.BIGINT);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("123"));
+ }
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_21() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1, (short)123, Types.BIGINT);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("123"));
+ }
+
+ /**
+ * Tests that the various set methods of {@link JenaPreparedStatement}
function correctly
+ * @throws SQLException
+ */
+ @Test
+ public void connection_prepared_statement_setters_22() throws SQLException
{
+ JenaConnection conn = this.getConnection();
+ JenaPreparedStatement stmt = (JenaPreparedStatement)
conn.prepareStatement("SELECT * WHERE { ?s ?p ? }");
+
+ stmt.setObject(1, (byte)123, Types.BIGINT);
+ ParameterizedSparqlString pss = stmt.getParameterizedString();
+ Assert.assertTrue(pss.toString().contains("123"));
+ }
/**
* Runs a SELECT query on a non-empty database with max rows set and checks