/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestDbQueryManager.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.database;
import com.uwyn.rife.database.queries.*;
import com.uwyn.rife.database.exceptions.DatabaseException;
import com.uwyn.rife.template.Template;
import com.uwyn.rife.template.TemplateFactory;
import com.uwyn.rife.tools.ExceptionUtils;
import com.uwyn.rife.tools.FileUtils;
import com.uwyn.rife.tools.exceptions.InnerClassException;
import com.uwyn.rife.tools.InputStreamUser;
import com.uwyn.rife.tools.ReaderUser;
import com.uwyn.rife.tools.exceptions.ControlFlowRuntimeException;
import com.uwyn.rife.tools.exceptions.FileUtilsErrorException;
import java.io.InputStream;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.sql.Blob;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import junit.framework.TestCase;
public class TestDbQueryManager extends TestCase
{
private Datasource mDatasource = null;
public TestDbQueryManager(Datasource datasource, String datasourceName, String name)
{
super(name);
mDatasource = datasource;
}
public void setUp()
{
}
public void tearDown()
{
try
{
DbConnection connection = mDatasource.getConnection();
// drop the test table
DbStatement statement = connection.createStatement();
try
{
try
{
statement.executeUpdate(new DropTable(mDatasource).table("tbltest"));
}
catch (DatabaseException e) { /* don't do anything */ }
}
finally
{
try
{
statement.close();
}
catch (DatabaseException e) { /* don't do anything */ }
}
connection.close();
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalInstantiation()
{
try
{
new DbQueryManager(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testInstantiation()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
assertNotNull(manager);
assertSame(manager.getDatasource(), mDatasource);
}
public void testIllegalExecuteUpdateSql()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeUpdate((String)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testTransactionUserCommit()
{
final DbQueryManager manager = new DbQueryManager(mDatasource);
String create = "CREATE TABLE tbltest (id INTEGER, stringcol VARCHAR(255))";
manager.executeUpdate(create);
try
{
final String insert = "INSERT INTO tbltest VALUES (232, 'somestring')";
final Select select = new Select(mDatasource).from("tbltest").field("count(*)");
if (manager.getConnection().supportsTransactions() &&
!mDatasource.getAliasedDriver().equals("com.mysql.jdbc.Driver") &&
!mDatasource.getAliasedDriver().equals("org.apache.derby.jdbc.EmbeddedDriver") &&
!mDatasource.getAliasedDriver().equals("in.co.daffodil.db.jdbc.DaffodilDBDriver"))
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
assertEquals(1, manager.executeGetFirstInt(select));
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
assertEquals(2, manager.executeGetFirstInt(select));
}
});
manager.executeUpdate(insert);
assertEquals(3, manager.executeGetFirstInt(select));
}
});
assertEquals(3, manager.executeGetFirstInt(select));
// ensure that the transaction isn't committed yet
// since this should only happen after the last transaction user
Thread other_thread = new Thread() {
public void run()
{
// HsqlDB only has read-uncommitted transactionisolation
if ("org.hsqldb.jdbcDriver".equals(mDatasource.getAliasedDriver()))
{
assertEquals(3, manager.executeGetFirstInt(select));
}
// all the rest should be fully isolated
else
{
assertEquals(0, manager.executeGetFirstInt(select));
}
synchronized (this)
{
this.notifyAll();
}
}};
other_thread.start();
while (other_thread.isAlive())
{
synchronized (other_thread)
{
try
{
other_thread.wait();
}
catch (InterruptedException e)
{
}
}
}
}
});
assertEquals(3, manager.executeGetFirstInt(select));
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testTransactionUserRecommendedRollback()
{
final DbQueryManager manager = new DbQueryManager(mDatasource);
String create = "CREATE TABLE tbltest (id INTEGER, stringcol VARCHAR(255))";
manager.executeUpdate(create);
try
{
final String insert = "INSERT INTO tbltest VALUES (232, 'somestring')";
final Select select = new Select(mDatasource).from("tbltest").field("count(*)");
if (manager.getConnection().supportsTransactions() &&
false == mDatasource.getAliasedDriver().equals("com.mysql.jdbc.Driver"))
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
assertEquals(1, manager.executeGetFirstInt(select));
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
rollback();
}
});
manager.executeUpdate(insert);
fail();
}
});
fail();
}
});
assertEquals(0, manager.executeGetFirstInt(select));
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testTransactionUserRuntimeException()
{
final DbQueryManager manager = new DbQueryManager(mDatasource);
String create = "CREATE TABLE tbltest (id INTEGER, stringcol VARCHAR(255))";
manager.executeUpdate(create);
try
{
final String insert = "INSERT INTO tbltest VALUES (232, 'somestring')";
final Select select = new Select(mDatasource).from("tbltest").field("count(*)");
if (manager.getConnection().supportsTransactions() &&
false == mDatasource.getAliasedDriver().equals("com.mysql.jdbc.Driver"))
{
try
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
assertEquals(1, manager.executeGetFirstInt(select));
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
throw new RuntimeException("something happened");
}
});
manager.executeUpdate(insert);
fail();
}
});
fail();
}
});
fail();
}
catch (RuntimeException e)
{
assertEquals("something happened", e.getMessage());
}
assertEquals(0, manager.executeGetFirstInt(select));
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testTransactionUserRegularRollback()
{
final DbQueryManager manager = new DbQueryManager(mDatasource);
String create = "CREATE TABLE tbltest (id INTEGER, stringcol VARCHAR(255))";
manager.executeUpdate(create);
try
{
final String insert = "INSERT INTO tbltest VALUES (232, 'somestring')";
final Select select = new Select(mDatasource).from("tbltest").field("count(*)");
if (manager.getConnection().supportsTransactions() &&
false == mDatasource.getAliasedDriver().equals("com.mysql.jdbc.Driver"))
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
assertEquals(1, manager.executeGetFirstInt(select));
manager.getConnection().rollback();
}
});
assertEquals(0, manager.executeGetFirstInt(select));
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testTransactionUserCommittingException()
{
final DbQueryManager manager = new DbQueryManager(mDatasource);
String create = "CREATE TABLE tbltest (id INTEGER, stringcol VARCHAR(255))";
manager.executeUpdate(create);
try
{
final String insert = "INSERT INTO tbltest VALUES (232, 'somestring')";
final Select select = new Select(mDatasource).from("tbltest").field("count(*)");
if (manager.getConnection().supportsTransactions() &&
false == mDatasource.getAliasedDriver().equals("com.mysql.jdbc.Driver"))
{
try
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
assertEquals(1, manager.executeGetFirstInt(select));
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.inTransaction(new DbTransactionUserWithoutResult() {
public void useTransactionWithoutResult()
throws InnerClassException
{
manager.executeUpdate(insert);
throw new TestComittingRuntimeException("something happened");
}
});
manager.executeUpdate(insert);
fail();
}
});
fail();
}
});
fail();
}
catch (RuntimeException e)
{
assertEquals("something happened", e.getMessage());
}
assertEquals(2, manager.executeGetFirstInt(select));
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public class TestComittingRuntimeException extends RuntimeException implements ControlFlowRuntimeException
{
public TestComittingRuntimeException(String message)
{
super(message);
}
}
public void testExecuteUpdateSqlSuccess()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("column1", String.class, 50);
manager.executeUpdate(create_query.getSql());
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query.getSql()));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteUpdateBuilder()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeUpdate((Query)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteUpdateBuilderSuccess()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteUpdateBuilderError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column2", "sometext");
try
{
manager.executeUpdate(insert_query);
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteUpdateHandler()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeUpdate(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteUpdateHandler()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.fieldParameter("name");
assertEquals(1, manager.executeUpdate(insert_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("name", "me");
}
}));
assertEquals("me", manager.executeGetFirstString(new Select(mDatasource).from("tbltest")));
manager.executeUpdate(new Delete(mDatasource).from("tbltest"));
insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("name", "me2");
assertEquals(1, manager.executeUpdate(insert_query, null));
assertEquals("me2", manager.executeGetFirstString(new Select(mDatasource).from("tbltest")));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteHasResultRows()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeHasResultRows((Select)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteReadQueryString()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
manager.executeUpdate(new Insert(mDatasource).into("tbltest").field("name", "me"));
assertTrue(manager.executeHasResultRows(new ReadQueryString("SELECT name FROM tbltest WHERE name = 'me'")));
assertTrue(manager.executeHasResultRows(new ReadQueryString("SELECT name FROM tbltest WHERE name = ?"), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString(1, "me");
}
}));
manager.executeUpdate(new Delete(mDatasource).from("tbltest"));
assertFalse(manager.executeHasResultRows(new ReadQueryString("SELECT name FROM tbltest WHERE name = 'me'")));
assertFalse(manager.executeHasResultRows(new ReadQueryString("SELECT name FROM tbltest WHERE name = ?"), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString(1, "me");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteReadQueryTemplate()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
manager.executeUpdate(new Insert(mDatasource).into("tbltest").field("name", "me"));
Template template1 = TemplateFactory.SQL.get("readquery_blocks");
template1.setValue("name", template1.getEncoder().encode("me"));
assertTrue(manager.executeHasResultRows(new ReadQueryTemplate(template1, "query1")));
Template template2 = TemplateFactory.SQL.get("readquery_content");
template2.setValue("name", template2.getEncoder().encode("me"));
assertTrue(manager.executeHasResultRows(new ReadQueryTemplate(template2)));
assertTrue(manager.executeHasResultRows(new ReadQueryTemplate(template1, "query2"), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString(1, "me");
}
}));
manager.executeUpdate(new Delete(mDatasource).from("tbltest"));
assertFalse(manager.executeHasResultRows(new ReadQueryTemplate(template1, "query1")));
assertFalse(manager.executeHasResultRows(new ReadQueryTemplate(template1, "query2"), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString(1, "me");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteHasResultRows()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
manager.executeUpdate(new Insert(mDatasource).into("tbltest").field("name", "me"));
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
assertTrue(manager.executeHasResultRows(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.whereParameter("name", "=");
assertTrue(manager.executeHasResultRows(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("name", "me");
}
}));
manager.executeUpdate(new Delete(mDatasource).from("tbltest"));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
assertFalse(manager.executeHasResultRows(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.whereParameter("name", "=");
assertFalse(manager.executeHasResultRows(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("name", "me");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteHasResultRowsConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeHasResultRows(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstString()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstString(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstString()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("firstcol", String.class, 50).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.where("lastcol", "=", "Doe");
assertNull(manager.executeGetFirstString(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "John", "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "Piet", "lastcol", "Smith"}));
assertEquals("John", manager.executeGetFirstString(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.whereParameter("lastcol", "=");
assertEquals("Piet", manager.executeGetFirstString(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstStringConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstString(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstBoolean()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstBoolean(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstBoolean()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", boolean.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertEquals(false, manager.executeGetFirstBoolean(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Boolean(true), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Boolean(false), "lastcol", "Smith"}));
assertEquals(true, manager.executeGetFirstBoolean(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(false, manager.executeGetFirstBoolean(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstBooleanConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstBoolean(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getBoolean("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstByte()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstByte(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstByte()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", byte.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertEquals(-1, manager.executeGetFirstByte(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Byte((byte)12), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Byte((byte)23), "lastcol", "Smith"}));
assertEquals(12, manager.executeGetFirstByte(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(23, manager.executeGetFirstByte(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstByteConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstByte(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getByte("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstShort()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstShort(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstShort()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", short.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertEquals(-1, manager.executeGetFirstShort(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Short((short)98), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Short((short)243), "lastcol", "Smith"}));
assertEquals(98, manager.executeGetFirstShort(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(243, manager.executeGetFirstShort(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstShortConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstShort(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getShort("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstInt()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstInt(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstInt()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", int.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertEquals(-1, manager.executeGetFirstInt(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Integer(827), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Integer(154), "lastcol", "Smith"}));
assertEquals(827, manager.executeGetFirstInt(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(154, manager.executeGetFirstInt(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstIntConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstInt(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getInt("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstLong()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstLong(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstLong()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", long.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertEquals(-1, manager.executeGetFirstLong(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Long(92873), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Long(14873), "lastcol", "Smith"}));
assertEquals(92873, manager.executeGetFirstLong(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(14873, manager.executeGetFirstLong(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstLongConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstLong(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getLong("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstFloat()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstFloat(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstFloat()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", float.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertEquals(-1.0f, manager.executeGetFirstFloat(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Float(12.4), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Float(23.5), "lastcol", "Smith"}));
assertEquals(12.4f, manager.executeGetFirstFloat(select_query));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(23.5f, manager.executeGetFirstFloat(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstFloatConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstFloat(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getFloat("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstDouble()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstDouble(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstDouble()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", double.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertEquals(-1.0d, manager.executeGetFirstDouble(select_query));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Double(287.52), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new Double(1984.328), "lastcol", "Smith"}));
assertEquals(287.52d, manager.executeGetFirstDouble(select_query), 0.001);
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(1984.328d, manager.executeGetFirstDouble(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}), 0.001);
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstDoubleConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstDouble(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getDouble("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstBytes()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstBytes(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstBytes()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
if (mDatasource.getAliasedDriver().equals("oracle.jdbc.driver.OracleDriver"))
{
create_query.table("tbltest").column("datacol", String.class).column("lastcol", String.class, 50);
}
else
{
create_query.table("tbltest").column("datacol", Blob.class).column("lastcol", String.class, 50);
}
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertNull(manager.executeGetFirstBytes(select_query));
Insert insert = new Insert(mDatasource).into("tbltest").fieldParameter("datacol").fieldParameter("lastcol");
manager.executeUpdate(insert, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
if (mDatasource.getAliasedDriver().equals("oracle.jdbc.driver.OracleDriver"))
{
statement.setString("datacol", "abc");
}
else
{
statement.setBytes("datacol", "abc".getBytes());
}
statement.setString("lastcol", "Doe");
}
});
manager.executeUpdate(insert, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
if (mDatasource.getAliasedDriver().equals("oracle.jdbc.driver.OracleDriver"))
{
statement.setString("datacol", "def");
}
else
{
statement.setBytes("datacol", "def".getBytes());
}
statement.setString("lastcol", "Smith");
}
});
byte[] result = null;
result = manager.executeGetFirstBytes(select_query);
assertTrue(Arrays.equals(new byte[] {97,98,99}, result));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
result = manager.executeGetFirstBytes(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
});
assertTrue(Arrays.equals(new byte[] {100,101,102}, result));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstBytesConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstBytes(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
resultSet.getBytes("unknown");
return null;
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstDate()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstDate(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
try
{
manager.executeGetFirstDate(null, (Calendar)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstDate()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", java.sql.Date.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertNull(manager.executeGetFirstDate(select_query));
assertNull(manager.executeGetFirstDate(select_query, Calendar.getInstance()));
Calendar cal1 = Calendar.getInstance();
cal1.set(2003, 11, 12, 0, 0, 0);
cal1.set(Calendar.MILLISECOND, 0);
Calendar cal2 = Calendar.getInstance();
cal2.set(2004, 2, 7, 0, 0, 0);
cal2.set(Calendar.MILLISECOND, 0);
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new java.sql.Date(cal1.getTimeInMillis()), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new java.sql.Date(cal2.getTimeInMillis()), "lastcol", "Smith"}));
assertEquals(cal1.getTimeInMillis(), manager.executeGetFirstDate(select_query).getTime());
assertEquals(cal1.getTimeInMillis(), manager.executeGetFirstDate(select_query, Calendar.getInstance()).getTime());
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(cal2.getTimeInMillis(), manager.executeGetFirstDate(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}).getTime());
assertEquals(cal2.getTimeInMillis(), manager.executeGetFirstDate(select_query, Calendar.getInstance(), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}).getTime());
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstDateConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstDate(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getDate("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
try
{
manager.executeGetFirstDate(select_query, Calendar.getInstance(), new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getDate("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstTime()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstTime(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
try
{
manager.executeGetFirstTime(null, (Calendar)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstTime()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", java.sql.Time.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertNull(manager.executeGetFirstTime(select_query));
assertNull(manager.executeGetFirstTime(select_query, Calendar.getInstance()));
Calendar cal1 = Calendar.getInstance();
cal1.set(1970, 0, 1, 12, 5, 12);
cal1.set(Calendar.MILLISECOND, 0);
Calendar cal2 = Calendar.getInstance();
cal2.set(1970, 0, 1, 23, 34, 27);
cal2.set(Calendar.MILLISECOND, 0);
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new java.sql.Time(cal1.getTimeInMillis()), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new java.sql.Time(cal2.getTimeInMillis()), "lastcol", "Smith"}));
assertEquals(cal1.getTimeInMillis(), manager.executeGetFirstTime(select_query).getTime());
assertEquals(cal1.getTimeInMillis(), manager.executeGetFirstTime(select_query, Calendar.getInstance()).getTime());
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(cal2.getTimeInMillis(), manager.executeGetFirstTime(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}).getTime());
assertEquals(cal2.getTimeInMillis(), manager.executeGetFirstTime(select_query, Calendar.getInstance(), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}).getTime());
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstTimeConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstTime(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getTime("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
try
{
manager.executeGetFirstTime(select_query, Calendar.getInstance(), new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getTime("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstTimestamp()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeGetFirstTimestamp(null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
try
{
manager.executeGetFirstTimestamp(null, (Calendar)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstTimestamp()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("datacol", java.sql.Timestamp.class).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.where("lastcol", "=", "Doe");
assertNull(manager.executeGetFirstTimestamp(select_query));
assertNull(manager.executeGetFirstTimestamp(select_query, Calendar.getInstance()));
Calendar cal1 = Calendar.getInstance();
cal1.set(2003, 11, 12, 8, 10, 8);
cal1.set(Calendar.MILLISECOND, 0);
Calendar cal2 = Calendar.getInstance();
cal2.set(2004, 2, 7, 21, 34, 12);
cal2.set(Calendar.MILLISECOND, 0);
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new java.sql.Timestamp(cal1.getTimeInMillis()), "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new Object[] {"datacol", new java.sql.Timestamp(cal2.getTimeInMillis()), "lastcol", "Smith"}));
assertEquals(cal1.getTimeInMillis(), manager.executeGetFirstTimestamp(select_query).getTime());
assertEquals(cal1.getTimeInMillis(), manager.executeGetFirstTimestamp(select_query, Calendar.getInstance()).getTime());
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol")
.whereParameter("lastcol", "=");
assertEquals(cal2.getTimeInMillis(), manager.executeGetFirstTimestamp(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}).getTime());
assertEquals(cal2.getTimeInMillis(), manager.executeGetFirstTimestamp(select_query, Calendar.getInstance(), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
}).getTime());
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstTimestampConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeGetFirstTimestamp(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getTimestamp("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
try
{
manager.executeGetFirstTimestamp(select_query, Calendar.getInstance(), new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getTimestamp("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstAsciiStream()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeUseFirstAsciiStream(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
try
{
manager.executeUseFirstAsciiStream(new Select(mDatasource).from("tbltest"), null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstAsciiStream()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("firstcol", String.class, 50).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.where("lastcol", "=", "Doe");
manager.executeUseFirstAsciiStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNull(stream);
return null;
}
});
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "John", "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "Piet", "lastcol", "Smith"}));
manager.executeUseFirstAsciiStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNotNull(stream);
try
{
assertEquals("John", FileUtils.readString(stream));
}
catch (FileUtilsErrorException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
return null;
}
});
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.whereParameter("lastcol", "=");
manager.executeUseFirstAsciiStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNotNull(stream);
try
{
assertEquals("Piet", FileUtils.readString(stream));
}
catch (FileUtilsErrorException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
return null;
}
}, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
});
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstAsciiStreamConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeUseFirstAsciiStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNotNull(stream);
return null;
}
}, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstCharacterStream()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeUseFirstCharacterStream(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
try
{
manager.executeUseFirstCharacterStream(new Select(mDatasource).from("tbltest"), null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstCharacterStream()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("firstcol", String.class, 50).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.where("lastcol", "=", "Doe");
manager.executeUseFirstCharacterStream(select_query, new ReaderUser() {
public Object useReader(Reader reader)
throws InnerClassException
{
assertNull(reader);
return null;
}
});
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "John", "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "Piet", "lastcol", "Smith"}));
manager.executeUseFirstCharacterStream(select_query, new ReaderUser() {
public Object useReader(Reader reader)
throws InnerClassException
{
assertNotNull(reader);
try
{
assertEquals("John", FileUtils.readString(reader));
}
catch (FileUtilsErrorException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
return null;
}
});
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.whereParameter("lastcol", "=");
manager.executeUseFirstCharacterStream(select_query, new ReaderUser() {
public Object useReader(Reader reader)
throws InnerClassException
{
assertNotNull(reader);
try
{
assertEquals("Piet", FileUtils.readString(reader));
}
catch (FileUtilsErrorException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
return null;
}
}, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
});
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstCharacterStreamConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeUseFirstCharacterStream(select_query, new ReaderUser() {
public Object useReader(Reader reader)
throws InnerClassException
{
assertNotNull(reader);
return null;
}
}, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteGetFirstBinaryStream()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeUseFirstBinaryStream(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
try
{
manager.executeUseFirstBinaryStream(new Select(mDatasource).from("tbltest"), null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteGetFirstBinaryStream()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
if (mDatasource.getAliasedDriver().equals("org.apache.derby.jdbc.EmbeddedDriver") ||
mDatasource.getAliasedDriver().equals("com.mckoi.JDBCDriver"))
{
create_query.table("tbltest").column("firstcol", Blob.class).column("lastcol", String.class, 50);
}
else
{
create_query.table("tbltest").column("firstcol", String.class).column("lastcol", String.class, 50);
}
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.where("lastcol", "=", "Doe");
manager.executeUseFirstBinaryStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNull(stream);
return null;
}
});
manager.executeUpdate(new Insert(mDatasource)
.into("tbltest")
.fieldParameter("firstcol")
.field("lastcol", "Doe"), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
if (mDatasource.getAliasedDriver().equals("org.apache.derby.jdbc.EmbeddedDriver") ||
mDatasource.getAliasedDriver().equals("com.mckoi.JDBCDriver") ||
mDatasource.getAliasedDriver().equals("org.h2.Driver"))
{
try
{
statement.setBytes("firstcol", "John".getBytes("UTF-8"));
}
catch (UnsupportedEncodingException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
else
{
statement.setString("firstcol", "John");
}
}
});
manager.executeUpdate(new Insert(mDatasource)
.into("tbltest")
.fieldParameter("firstcol")
.field("lastcol", "Smith"), new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
if (mDatasource.getAliasedDriver().equals("org.apache.derby.jdbc.EmbeddedDriver") ||
mDatasource.getAliasedDriver().equals("com.mckoi.JDBCDriver") ||
mDatasource.getAliasedDriver().equals("org.h2.Driver"))
{
try
{
statement.setBytes("firstcol", "Piet".getBytes("UTF-8"));
}
catch (UnsupportedEncodingException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
else
{
statement.setString("firstcol", "Piet");
}
}
});
manager.executeUseFirstBinaryStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNotNull(stream);
try
{
assertEquals("John", FileUtils.readString(stream, "UTF-8"));
}
catch (FileUtilsErrorException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
return null;
}
});
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("firstcol")
.whereParameter("lastcol", "=");
manager.executeUseFirstBinaryStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNotNull(stream);
try
{
assertEquals("Piet", FileUtils.readString(stream));
}
catch (FileUtilsErrorException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
return null;
}
}, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
});
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteGetFirstBinaryStreamConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("name")
.where("name", "=", "me");
try
{
manager.executeUseFirstBinaryStream(select_query, new InputStreamUser() {
public Object useInputStream(InputStream stream)
throws InnerClassException
{
assertNotNull(stream);
return null;
}
}, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteFetchFirst()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeFetchFirst(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteFetchFirst()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("datacol", String.class, 50)
.column("valuecol", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("datacol", "sometext")
.field("valuecol", "thevalue");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol");
DbRowProcessorSuccess processor = null;
processor = new DbRowProcessorSuccess();
assertTrue(manager.executeFetchFirst(select_query, processor));
assertEquals(processor.getCounter(), 1);
assertTrue(manager.executeFetchFirst(select_query, processor));
assertEquals(processor.getCounter(), 2);
select_query
.whereParameter("valuecol", "=");
processor = new DbRowProcessorSuccess();
assertTrue(manager.executeFetchFirst(select_query, processor, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("valuecol", "thevalue");
}
}));
assertEquals(processor.getCounter(), 1);
processor = new DbRowProcessorSuccess();
assertFalse(manager.executeFetchFirst(select_query, processor, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("valuecol", "not present");
}
}));
assertEquals(processor.getCounter(), 0);
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteFetchFirstConcludeError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("datacol", String.class, 50)
.column("valuecol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol");
try
{
manager.executeFetchFirst(select_query, null, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteFetchFirstBean()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeFetchFirstBean(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteFetchFirstBean()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").columns(BeanImplConstrained.class);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest").fields(BeanImplConstrained.getPopulatedBean());
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest");
BeanImplConstrained bean = null;
bean = manager.executeFetchFirstBean(select_query, BeanImplConstrained.class);
assertNotNull(bean);
BeanImplConstrained bean_populated = BeanImplConstrained.getPopulatedBean();
assertEquals(bean.getPropertyString(), bean_populated.getPropertyString());
assertEquals(bean.getPropertyStringbuffer().toString(), bean_populated.getPropertyStringbuffer().toString());
// don't compare milliseconds since each db stores it differently
assertEquals((bean.getPropertyDate().getTime()/1000)*1000, (bean_populated.getPropertyDate().getTime()/1000)*1000);
assertEquals((bean.getPropertyCalendar().getTime().getTime()/1000)*1000, (bean_populated.getPropertyCalendar().getTime().getTime()/1000)*1000);
assertEquals((bean.getPropertyTimestamp().getTime()/1000)*1000, (bean_populated.getPropertyTimestamp().getTime()/1000)*1000);
assertEquals(bean.getPropertySqlDate().toString(), bean_populated.getPropertySqlDate().toString());
assertEquals(bean.getPropertyTime().toString(), bean_populated.getPropertyTime().toString());
assertEquals(bean.isPropertyBoolean(), bean_populated.isPropertyBoolean());
assertEquals(bean.getPropertyChar(), bean_populated.getPropertyChar());
assertFalse(bean.getPropertyByte() == bean_populated.getPropertyByte()); // byte is not saved
assertEquals(bean.getPropertyDouble(), bean_populated.getPropertyDouble(), 0.001);
assertEquals(bean.getPropertyFloat(), bean_populated.getPropertyFloat(), 0.001);
assertEquals(bean.getPropertyDoubleObject().doubleValue(), bean_populated.getPropertyDoubleObject().doubleValue(), 0.01);
assertEquals(bean.getPropertyFloatObject().floatValue(), bean_populated.getPropertyFloatObject().floatValue(), 0.01);
assertEquals(bean.getPropertyInt(), bean_populated.getPropertyInt());
assertFalse(bean.getPropertyLong() == bean_populated.getPropertyLong()); // long is not persistent
assertEquals(bean.getPropertyShort(), bean_populated.getPropertyShort());
assertEquals(bean.getPropertyBigDecimal(), bean_populated.getPropertyBigDecimal());
select_query
.whereParameter("propertyString", "=");
bean = manager.executeFetchFirstBean(select_query, BeanImplConstrained.class, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("propertyString", "someotherstring");
}
});
assertNotNull(bean);
assertEquals(bean.getPropertyString(), bean_populated.getPropertyString());
assertEquals(bean.getPropertyStringbuffer().toString(), bean_populated.getPropertyStringbuffer().toString());
assertEquals((bean.getPropertyDate().getTime()/1000)*1000, (bean_populated.getPropertyDate().getTime()/1000)*1000);
assertEquals((bean.getPropertyCalendar().getTime().getTime()/1000)*1000, (bean_populated.getPropertyCalendar().getTime().getTime()/1000)*1000);
assertEquals((bean.getPropertyTimestamp().getTime()/1000)*1000, (bean_populated.getPropertyTimestamp().getTime()/1000)*1000);
assertEquals(bean.getPropertySqlDate().toString(), bean_populated.getPropertySqlDate().toString());
assertEquals(bean.getPropertyTime().toString(), bean_populated.getPropertyTime().toString());
assertEquals(bean.isPropertyBoolean(), bean_populated.isPropertyBoolean());
assertEquals(bean.getPropertyChar(), bean_populated.getPropertyChar());
assertFalse(bean.getPropertyByte() == bean_populated.getPropertyByte()); // byte is not saved
assertEquals(bean.getPropertyDouble(), bean_populated.getPropertyDouble(), 0.001);
assertEquals(bean.getPropertyFloat(), bean_populated.getPropertyFloat(), 0.001);
assertEquals(bean.getPropertyDoubleObject().doubleValue(), bean_populated.getPropertyDoubleObject().doubleValue(), 0.01);
assertEquals(bean.getPropertyFloatObject().floatValue(), bean_populated.getPropertyFloatObject().floatValue(), 0.01);
assertEquals(bean.getPropertyInt(), bean_populated.getPropertyInt());
assertFalse(bean.getPropertyLong() == bean_populated.getPropertyLong()); // long is not persistent
assertEquals(bean.getPropertyShort(), bean_populated.getPropertyShort());
assertEquals(bean.getPropertyBigDecimal(), bean_populated.getPropertyBigDecimal());
bean = manager.executeFetchFirstBean(select_query, BeanImplConstrained.class, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("propertyString", "not present");
}
});
assertNull(bean);
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteFetchFirstBeanConcludeError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").columns(BeanImplConstrained.class);
manager.executeUpdate(create_query);
Select select_query = new Select(mDatasource);
select_query.from("tbltest");
try
{
manager.executeFetchFirstBean(select_query, BeanImplConstrained.class, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteFetchAll()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeFetchAll(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteFetchAll()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("datacol", String.class, 50)
.column("valuecol", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("datacol", "sometext1")
.field("valuecol", "thevalue1");
assertEquals(1, manager.executeUpdate(insert_query));
insert_query.clear();
insert_query.into("tbltest")
.field("datacol", "sometext2")
.field("valuecol", "thevalue2");
assertEquals(1, manager.executeUpdate(insert_query));
insert_query.clear();
insert_query.into("tbltest")
.field("datacol", "sometext2b")
.field("valuecol", "thevalue2");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol");
DbRowProcessorSuccess processor = null;
processor = new DbRowProcessorSuccess();
assertTrue(manager.executeFetchAll(select_query, processor));
assertEquals(processor.getCounter(), 2); // limited to maximum 2 by the rowprocessor
select_query
.whereParameter("valuecol", "=");
processor = new DbRowProcessorSuccess();
assertTrue(manager.executeFetchAll(select_query, processor, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("valuecol", "thevalue2");
}
}));
assertEquals(processor.getCounter(), 2);
processor = new DbRowProcessorSuccess();
assertFalse(manager.executeFetchAll(select_query, processor, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("valuecol", "not present");
}
}));
assertEquals(processor.getCounter(), 0);
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteFetchAllConcludeError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("datacol", String.class, 50)
.column("valuecol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("datacol");
try
{
DbRowProcessorSuccess processor = new DbRowProcessorSuccess();
manager.executeFetchAll(select_query, processor, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteFetchAllBeans()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeFetchAllBeans(null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteFetchAllBeans()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").columns(BeanImplConstrained.class);
manager.executeUpdate(create_query);
BeanImplConstrained bean = null;
Insert insert_query = new Insert(mDatasource);
bean = BeanImplConstrained.getPopulatedBean();
bean.setPropertyString("someotherstring");
bean.setPropertyStringbuffer(new StringBuffer("someotherstringbuf1"));
insert_query.into("tbltest").fields(bean);
assertEquals(1, manager.executeUpdate(insert_query));
insert_query.clear();
bean = BeanImplConstrained.getPopulatedBean();
bean.setPropertyString("one");
bean.setPropertyStringbuffer(new StringBuffer("someotherstringbuf2"));
insert_query.into("tbltest").fields(bean);
assertEquals(1, manager.executeUpdate(insert_query));
insert_query.clear();
bean = BeanImplConstrained.getPopulatedBean();
bean.setPropertyString("tw''o");
bean.setPropertyStringbuffer(new StringBuffer("someotherstringbuf3"));
insert_query.into("tbltest").fields(bean);
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest");
BeanImplConstrained bean_populated = BeanImplConstrained.getPopulatedBean();
List<BeanImplConstrained> beans = null;
beans = manager.executeFetchAllBeans(select_query, BeanImplConstrained.class);
assertNotNull(beans);
assertEquals(beans.size(), 3);
for (BeanImplConstrained bean2 : beans)
{
assertTrue(bean2.getPropertyString().equals("someotherstring") || bean2.getPropertyString().equals("one") || bean2.getPropertyString().equals("tw''o"));
assertTrue(bean2.getPropertyStringbuffer().toString().equals("someotherstringbuf1") || bean2.getPropertyStringbuffer().toString().equals("someotherstringbuf2") || bean2.getPropertyStringbuffer().toString().equals("someotherstringbuf3"));
// don't compare milliseconds since each db stores it differently
assertEquals((bean2.getPropertyDate().getTime()/1000)*1000, (bean_populated.getPropertyDate().getTime()/1000)*1000);
assertEquals((bean2.getPropertyCalendar().getTime().getTime()/1000)*1000, (bean_populated.getPropertyCalendar().getTime().getTime()/1000)*1000);
assertEquals((bean2.getPropertyTimestamp().getTime()/1000)*1000, (bean_populated.getPropertyTimestamp().getTime()/1000)*1000);
assertEquals(bean2.getPropertySqlDate().toString(), bean_populated.getPropertySqlDate().toString());
assertEquals(bean2.getPropertyTime().toString(), bean_populated.getPropertyTime().toString());
assertEquals(bean2.isPropertyBoolean(), bean_populated.isPropertyBoolean());
assertEquals(bean2.getPropertyChar(), bean_populated.getPropertyChar());
assertFalse(bean2.getPropertyByte() == bean_populated.getPropertyByte()); // byte is not saved
assertEquals(bean2.getPropertyDouble(), bean_populated.getPropertyDouble(), 0.001);
assertEquals(bean2.getPropertyFloat(), bean_populated.getPropertyFloat(), 0.001);
assertEquals(bean2.getPropertyDoubleObject().doubleValue(), bean_populated.getPropertyDoubleObject().doubleValue(), 0.01);
assertEquals(bean2.getPropertyFloatObject().floatValue(), bean_populated.getPropertyFloatObject().floatValue(), 0.01);
assertEquals(bean2.getPropertyInt(), bean_populated.getPropertyInt());
assertFalse(bean2.getPropertyLong() == bean_populated.getPropertyLong()); // long is not persistent
assertEquals(bean2.getPropertyShort(), bean_populated.getPropertyShort());
assertEquals(bean2.getPropertyBigDecimal(), bean_populated.getPropertyBigDecimal());
}
select_query
.whereParameter("propertyString", "=");
beans = manager.executeFetchAllBeans(select_query, BeanImplConstrained.class, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("propertyString", "one");
}
});
assertNotNull(beans);
assertEquals(beans.size(), 1);
BeanImplConstrained bean2 = beans.get(0);
assertEquals(bean2.getPropertyString(), "one");
assertEquals(bean2.getPropertyStringbuffer().toString(), "someotherstringbuf2");
// don't compare milliseconds since each db stores it differently
assertEquals((bean2.getPropertyDate().getTime()/1000)*1000, (bean_populated.getPropertyDate().getTime()/1000)*1000);
assertEquals((bean2.getPropertyCalendar().getTime().getTime()/1000)*1000, (bean_populated.getPropertyCalendar().getTime().getTime()/1000)*1000);
assertEquals((bean2.getPropertyTimestamp().getTime()/1000)*1000, (bean_populated.getPropertyTimestamp().getTime()/1000)*1000);
assertEquals(bean2.getPropertySqlDate().toString(), bean_populated.getPropertySqlDate().toString());
assertEquals(bean2.getPropertyTime().toString(), bean_populated.getPropertyTime().toString());
assertEquals(bean2.isPropertyBoolean(), bean_populated.isPropertyBoolean());
assertEquals(bean2.getPropertyChar(), bean_populated.getPropertyChar());
assertFalse(bean2.getPropertyByte() == bean_populated.getPropertyByte()); // byte is not saved
assertEquals(bean2.getPropertyDouble(), bean_populated.getPropertyDouble(), 0.001);
assertEquals(bean2.getPropertyFloat(), bean_populated.getPropertyFloat(), 0.001);
assertEquals(bean2.getPropertyDoubleObject().doubleValue(), bean_populated.getPropertyDoubleObject().doubleValue(), 0.01);
assertEquals(bean2.getPropertyFloatObject().floatValue(), bean_populated.getPropertyFloatObject().floatValue(), 0.01);
assertEquals(bean2.getPropertyInt(), bean_populated.getPropertyInt());
assertFalse(bean2.getPropertyLong() == bean_populated.getPropertyLong()); // long is not persistent
assertEquals(bean2.getPropertyShort(), bean_populated.getPropertyShort());
assertEquals(bean2.getPropertyBigDecimal(), bean_populated.getPropertyBigDecimal());
beans = manager.executeFetchAllBeans(select_query, BeanImplConstrained.class, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("propertyString", "not present");
}
});
assertNotNull(beans);
assertEquals(beans.size(), 0);
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteFetchAllBeansConcludeError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").columns(BeanImplConstrained.class);
manager.executeUpdate(create_query);
Select select_query = new Select(mDatasource);
select_query.from("tbltest");
try
{
manager.executeFetchAllBeans(select_query, BeanImplConstrained.class, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteQueryDbPreparedStatementHandler()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeQuery((Select)null, (DbPreparedStatementHandler)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteQueryDbPreparedStatementHandler()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("firstcol", String.class, 50).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.where("lastcol", "=", "Doe");
assertNull(manager.executeQuery(select_query, (DbPreparedStatementHandler)null));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "John", "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "Piet", "lastcol", "Smith"}));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.whereParameter("lastcol", "=");
assertEquals("Piet Smith", manager.executeQuery(select_query, new DbPreparedStatementHandler() {
public void setParameters(DbPreparedStatement statement)
{
statement
.setString("lastcol", "Smith");
}
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
if (resultSet.next())
{
return resultSet.getString("firstcol")+" "+resultSet.getString("lastcol");
}
return null;
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteQueryDbPreparedStatementHandlerConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest");
try
{
manager.executeQuery(select_query, new DbPreparedStatementHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteQueryDbResultSetHandler()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeQuery((Select)null, (DbResultSetHandler)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteQueryDbResultSetHandler()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("firstcol", String.class, 50).column("lastcol", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest")
.where("lastcol", "=", "Doe");
assertNull(manager.executeQuery(select_query, (DbResultSetHandler)null));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "John", "lastcol", "Doe"}));
manager.executeUpdate(new Insert(mDatasource).into("tbltest").fields(new String[] {"firstcol", "Piet", "lastcol", "Smith"}));
select_query = new Select(mDatasource);
select_query.from("tbltest")
.where("lastcol", "=", "Doe");
assertEquals("John Doe", manager.executeQuery(select_query, new DbResultSetHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
if (resultSet.next())
{
return resultSet.getString("firstcol")+" "+resultSet.getString("lastcol");
}
return null;
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteQueryDbResultSetHandlerConcludeErrors()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("name", String.class, 50);
manager.executeUpdate(create_query);
Select select_query = null;
select_query = new Select(mDatasource);
select_query.from("tbltest");
try
{
manager.executeQuery(select_query, new DbResultSetHandler() {
public Object concludeResults(DbResultSet resultSet)
throws SQLException
{
return resultSet.getString("unknown");
}
});
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testReserveConnection()
{
final DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
assertEquals("test", manager.reserveConnection(new DbConnectionUser() {
public Object useConnection(final DbConnection connection)
{
assertSame(manager.getConnection(), connection);
new Thread() {
public void run()
{
assertNotSame(manager.getConnection(), connection);
}
}.start();
return "test";
}
}));
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalExecuteQuerySql()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.executeQuery((ReadQuery)null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testExecuteQueryBuilderSuccess()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("column1");
DbStatement statement = manager.executeQuery(select_query);
try
{
assertNotNull(statement);
}
finally
{
statement.close();
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testExecuteQueryBuilderError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("column2");
try
{
manager.executeQuery(select_query);
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalFetch()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.fetch((ResultSet)null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testFetchSuccess()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("column1");
DbRowProcessorSuccess processor = new DbRowProcessorSuccess();
DbStatement statement = null;
DbResultSet resultset = null;
try
{
statement = manager.executeQuery(select_query);
resultset = statement.getResultSet();
assertTrue(manager.fetch(resultset, processor));
assertEquals(processor.getCounter(), 1);
assertFalse(manager.fetch(resultset, processor));
assertEquals(processor.getCounter(), 1);
}
finally
{
statement.close();
}
statement = manager.executeQuery(select_query);
try
{
resultset = statement.getResultSet();
assertTrue(manager.fetch(resultset));
assertFalse(manager.fetch(resultset));
}
finally
{
statement.close();
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testFetchError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("column1");
DbStatement statement1 = manager.executeQuery(select_query);
try
{
manager.fetch(statement1.getResultSet(), new DbRowProcessorError());
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
finally
{
statement1.close();
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testIllegalFetchAll()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
manager.fetchAll((ResultSet)null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
public void testFetchAllSuccess()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query));
insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext2");
assertEquals(1, manager.executeUpdate(insert_query));
insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext2");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("column1");
DbRowProcessorSuccess processor = new DbRowProcessorSuccess();
DbStatement statement = manager.executeQuery(select_query);
try
{
assertTrue(manager.fetchAll(statement.getResultSet(), processor));
}
finally
{
statement.close();
}
assertEquals(processor.getCounter(), 2);
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testFetchAllError()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
try
{
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest")
.column("column1", String.class, 50);
manager.executeUpdate(create_query);
Insert insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext");
assertEquals(1, manager.executeUpdate(insert_query));
insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext2");
assertEquals(1, manager.executeUpdate(insert_query));
insert_query = new Insert(mDatasource);
insert_query.into("tbltest")
.field("column1", "sometext2");
assertEquals(1, manager.executeUpdate(insert_query));
Select select_query = new Select(mDatasource);
select_query.from("tbltest")
.field("column1");
try
{
DbStatement statement = manager.executeQuery(select_query);
try
{
manager.fetchAll(statement.getResultSet(), new DbRowProcessorError());
}
finally
{
statement.close();
}
fail();
}
catch (DatabaseException e)
{
assertTrue(true);
}
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testClone()
{
DbQueryManager manager = new DbQueryManager(mDatasource);
CreateTable create_query = new CreateTable(mDatasource);
create_query.table("tbltest").column("column1", String.class, 50);
manager.executeUpdate(create_query);
DbQueryManager manager2 = (DbQueryManager)manager.clone();
DbPreparedStatement statement = null;
try
{
statement = manager2.getConnection().getPreparedStatement(new Insert(mDatasource).into("tbltest").fieldParameter("column1"));
assertNotNull(statement);
}
catch (DatabaseException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
finally
{
statement.close();
}
}
class DbRowProcessorSuccess extends DbRowProcessor
{
private int mCounter = 0;
public DbRowProcessorSuccess()
{
}
public boolean processRow(ResultSet resultSet)
throws SQLException
{
if (2 == mCounter)
{
return false;
}
mCounter++;
return true;
}
public int getCounter()
{
return mCounter;
}
}
class DbRowProcessorError extends DbRowProcessor
{
public DbRowProcessorError()
{
}
public boolean processRow(ResultSet resultSet)
throws SQLException
{
resultSet.getString("inexistant_column");
return false;
}
}
}