Skip to content

Instantly share code, notes, and snippets.

@greghelton
Last active June 18, 2021 04:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greghelton/cae36edb375ad85b8527459156d51af0 to your computer and use it in GitHub Desktop.
Save greghelton/cae36edb375ad85b8527459156d51af0 to your computer and use it in GitHub Desktop.
Use Ant to create, populate and verify a H2 database.
<project name="h2db" basedir="." default="echo">
<property name="sqldriver.jar" value="lib/h2-1.4.200.jar"/>
<property name="url" value="jdbc:h2:~/h2db"/>
<property name="driver" value="org.h2.Driver"/>
<property name="userid" value="root"/>
<property name="password" value="root"/>
<target name="echo">
<echo>The targets that can be run are: </echo>
<echo>ant sqlcreate</echo>
<echo>ant sqlschema</echo>
<echo>ant sqlpopulate</echo>
<echo>ant sqlselect</echo>
<echo>ant sqldrop</echo>
</target>
<target name="sqlschema">
<sql
driver="${driver}"
url="${url}"
userid="${userid}"
password="${password}"
print="yes"
classpath="${sqldriver.jar}">
SHOW TABLES;
</sql>
</target>
<target name="sqldrop">
<sql
driver="${driver}"
url="${url}"
userid="${userid}"
password="${password}"
print="yes"
classpath="${sqldriver.jar}">
drop VIEW if exists ProjProg;
drop INDEX if exists Programmer_idx;
drop INDEX if exists Project_idx;
drop TABLE if exists ProjectProgrammer;
drop TABLE if exists Programmer;
drop TABLE if exists Project;
</sql>
</target>
<target name="sqlcreate">
<sql
driver="${driver}"
url="${url}"
userid="${userid}"
password="${password}"
print="yes"
classpath="${sqldriver.jar}">
create table Project (ID INT AUTO_INCREMENT, name varchar(30));
create index Project_idx on Project (name);
create table Programmer (ID INT AUTO_INCREMENT, full_name varchar(100));
create index Programmer_idx on Programmer (full_name);
create table ProjectProgrammer (project_id INTEGER, programmer_id INTEGER);
create view ProjProg as select Project.name, Programmer.full_name
from Programmer
join ProjectProgrammer
on Programmer.id = ProjectProgrammer.programmer_id
join Project
on ProjectProgrammer.project_id = Project.id;
</sql>
</target>
<target name="sqlpopulate" >
<sql
driver="${driver}"
url="${url}"
userid="${userid}"
password="${password}"
print="yes"
classpath="${sqldriver.jar}">
insert into Programmer (full_name) values('Greg Helton');
insert into Programmer (full_name) values('Bill Gates');
insert into Programmer (full_name) values('Steve Jobs');
insert into Project (name) values('Workplace assignments');
insert into ProjectProgrammer values(1,1);
insert into ProjectProgrammer values(1,2);
insert into ProjectProgrammer values(1,3);
</sql>
</target>
<target name="sqlselect" >
<sql
driver="${driver}"
url="${url}"
userid="${userid}"
password="${password}"
print="yes"
classpath="${sqldriver.jar}">
select * from Project;
select * from Programmer;
select *
from Programmer
join ProjectProgrammer
on Programmer.id = ProjectProgrammer.programmer_id
join Project
on ProjectProgrammer.project_id = Project.id;
select * from ProjProg;
</sql>
</target>
</project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment