diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..30abf5a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+# Build output directies
+target
+
+# Eclipse specific files/directories
+.classpath
+.project
+.settings
+.metadata
+.tomcatplugin
+test-output
+RemoteSystemsTempFiles
+Servers
+work
+.#webclasspath
+/bin
+*.class
+*.log
+#idea
+*.iml
+*.ipr
+*.iws
+# Scala-IDE specific
+.scala_dependencies
+test-output
+*~
+# h2database stuff
+test.mv.db
diff --git a/jdbc-tutorial/pom.xml b/jdbc-tutorial/pom.xml
new file mode 100644
index 0000000..2a41757
--- /dev/null
+++ b/jdbc-tutorial/pom.xml
@@ -0,0 +1,45 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>com.supwisdom</groupId>
+	<artifactId>jdbc-tutorial</artifactId>
+	<version>1.0-SNAPSHOT</version>
+	<packaging>jar</packaging>
+
+	<name>jdbc-tutorial</name>
+	<url>http://maven.apache.org</url>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>3.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.h2database</groupId>
+			<artifactId>h2</artifactId>
+			<version>1.4.178</version>
+		</dependency>
+	</dependencies>
+	
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>exec-maven-plugin</artifactId>
+				<version>1.3</version>
+				<configuration>
+					<includeProjectDependencies>true</includeProjectDependencies>
+					<mainClass>org.h2.tools.Server</mainClass>
+					<commandlineArgs>-baseDir ${basedir}</commandlineArgs>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/App.java b/jdbc-tutorial/src/main/java/com/supwisdom/App.java
new file mode 100644
index 0000000..d4069da
--- /dev/null
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/App.java
@@ -0,0 +1,16 @@
+package com.supwisdom;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+
+public class App {
+  
+  public static void main(String[] args) throws Exception {
+    Class.forName("org.h2.Driver");
+    Connection conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/test", "sa", "");
+    // add application code here
+    
+    conn.close();
+  }
+  
+}
diff --git a/jdbc-tutorial/src/test/java/com/supwisdom/AppTest.java b/jdbc-tutorial/src/test/java/com/supwisdom/AppTest.java
new file mode 100644
index 0000000..3d41cae
--- /dev/null
+++ b/jdbc-tutorial/src/test/java/com/supwisdom/AppTest.java
@@ -0,0 +1,38 @@
+package com.supwisdom;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}
