Created
December 27, 2011 03:33
-
-
Save greghelton/1522639 to your computer and use it in GitHub Desktop.
ANT: Project for Managing a SQLite 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="sqlite" basedir="." default="echo"> | |
<property name="sqldriver.jar" value="${user.home}/dev/bin/sqlite/sqlitejdbc-v056.jar"/> | |
<property name="db.name" value="programmers.db"/> | |
<property name="url" value="jdbc:sqlite:data"/> | |
<property name="driver" value="org.sqlite.JDBC"/> | |
<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}/${db.name}" | |
userid="${userid}" | |
password="${password}" | |
print="yes" | |
classpath="${sqldriver.jar}"> | |
select * from sqlite_master | |
</sql> | |
</target> | |
<target name="sqldrop"> | |
<sql | |
driver="${driver}" | |
url="${url}/${db.name}" | |
userid="${userid}" | |
password="${password}" | |
print="yes" | |
classpath="${sqldriver.jar}"> | |
drop VIEW ProjProg; | |
drop INDEX Programmer_idx; | |
drop INDEX Project_idx; | |
drop TABLE ProjectProgrammer; | |
drop TABLE Programmer; | |
drop TABLE Project; | |
</sql> | |
</target> | |
<target name="sqlcreate"> | |
<sql | |
driver="${driver}" | |
url="${url}/${db.name}" | |
userid="${userid}" | |
password="${password}" | |
print="yes" | |
classpath="${sqldriver.jar}"> | |
create table Project (id INTEGER PRIMARY KEY, short_description varchar(30), long_description varchar(120)); | |
create index Project_idx on Project (short_description); | |
create table Programmer (id INTEGER PRIMARY KEY, 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.short_description, 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}/${db.name}" | |
userid="${userid}" | |
password="${password}" | |
print="yes" | |
classpath="${sqldriver.jar}"> | |
insert into Programmer (full_name) values('Greg Helton'); | |
insert into Programmer (full_name) values('Yehuda Katz'); | |
insert into Programmer (full_name) values('Bob Martin'); | |
insert into Project (short_description, long_description) values('whack-a-mole', 'good name for a project with no unit tests'); | |
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}/${db.name}" | |
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