Skip to content

Instantly share code, notes, and snippets.

@mattwildig
Created January 13, 2012 00:55
Show Gist options
  • Save mattwildig/1604070 to your computer and use it in GitHub Desktop.
Save mattwildig/1604070 to your computer and use it in GitHub Desktop.
<project default="query-to-property">
<path id="hsql" >
<pathelement location="lib/hsqldb-2.2.6.jar" />
</path>
<property name="db-driver" value="org.hsqldb.jdbc.JDBCDriver" />
<property name="db-url" value="jdbc:hsqldb:mem:mydb" />
<target name="fetch-hsqldb">
<mkdir dir="lib" />
<get src="http://repo1.maven.org/maven2/org/hsqldb/hsqldb/2.2.6/hsqldb-2.2.6.jar" dest="lib/" skipexisting="true" />
</target>
<target name="compile-tasks">
<mkdir dir="build" />
<javac srcdir="src" destdir="build" includeantruntime="true" />
</target>
<target name="setup-db" depends="fetch-hsqldb">
<sql driver="${db-driver}" url="${db-url}" userid="" password="" classpathref="hsql">
create table my_table (my_column VARCHAR(50));
insert into my_table (my_column) values ('banana', 'apple');
</sql>
</target>
<target name="query-to-property" depends="compile-tasks, setup-db">
<taskdef name="resource-output-sql" classname="ResourceOutputSQLExec" classpath="build/" />
<resource-output-sql driver="${db-driver}" url="${db-url}" userid="" password="" classpathref="hsql"
print="true" showheaders="false" showtrailers="false" >
<output>
<propertyresource name="column-count" />
</output>
select count(my_column) from my_table;
</resource-output-sql>
<echo>The value of $${column-count} is ${column-count}</echo>
</target>
</project>
import org.apache.tools.ant.taskdefs.SQLExec;
import org.apache.tools.ant.types.Resource;
public class ResourceOutputSQLExec extends SQLExec {
public Output createOutput() {
return new Output();
}
public class Output {
public void add(Resource output) {
setOutput(output);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment