Last active
June 18, 2021 04:22
Use Ant to create, populate and verify a H2 database.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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