## Building from Source\r
\r
-[Eclipse](http://eclipse.org) is recommended for development as the project settings are preconfigured.\r
-\r
-Additionally, [eclipse-cs](http://eclipse-cs.sourceforge.net), [FindBugs](http://findbugs.sourceforge.net), and [EclEmma](http://www.eclemma.org) are recommended development tools.\r
-\r
-### Build Dependencies (bundled in repository)\r
-- [ant-googlecode](http://code.google.com/p/ant-googlecode) (New BSD)\r
-\r
-### Build Dependencies (downloaded during build)\r
-- [Moxie Build Toolkit](http://moxie.gitblit.com) (Apache 2.0)\r
-- [H2 Database](http://h2database.com) (Eclipse Public License 1.0)\r
-- [HSQL Database Engine](http://hsqldb.org) (BSD)\r
-- [Apache Derby Database](http://db.apache.org/derby) (Apache 2.0)\r
-- [MySQL Connector/J](http://dev.mysql.com/downloads/connector/j) (GPL)\r
-- [PostgreSQL JDBC Connector](http://jdbc.postgresql.org) (BSD)\r
-- [JUnit](http://junit.org) (Common Public License)\r
-- [SLF4J](http://www.slf4j.org) (MIT/X11)\r
-- [Apache Commons Pool](http://commons.apache.org/pool) (Apache 2.0)\r
-- [Apache Commons DBCP](http://commons.apache.org/dbcp) (Apache 2.0)\r
-\r
-### Instructions\r
-1. Clone the git repository from [Github](${project.scmUrl}).\r
-2. Import the iciql project into your Eclipse workspace.<br/>\r
-*There will be some build errors.*\r
-3. Using Ant, execute the `build.xml` script in the project root.<br/>\r
-*This will download all necessary build dependencies.*\r
-4. Select your iciql project root and **Refresh** the project, this should correct all build problems.\r
+### Maven\r
+\r
+You may use Maven to build the project:\r
+\r
+ mvn clean package\r
+ \r
+You may use Maven to run the test suite on the default database:\r
+\r
+ mvn clean test\r
+\r
+### Ant\r
+\r
+You may use Ant to build this project:\r
+\r
+ ant clean build\r
+ \r
+You may execute the full test suite against all tested databases:\r
+ \r
+ ant testsuite\r
\r
## Contributing\r
Patches welcome in any form.\r
\r
// select * from customers where region='WA'\r
Customer c = new Customer();\r
-List<Customer> waCustomers = db.from(c). where(c.region).is("WA").select();\r
+List<Customer> waCustomers = db.from(c).where(c.region).is("WA").select();\r
+\r
+// select distinct customerId from customers where region='WA'\r
+Customer c = new Customer();\r
+List<String> customerIds = db.from(c).where(c.region).is("WA").selectDistinct(c.customerId);\r
\r
public static class ProductPrice {\r
public String productName;\r
- designed to compete with more powerful database query tools like [jOOQ][jooq] or [QueryDSL][querydsl]\r
- designed to compete with enterprise [ORM][orm] tools like [Hibernate][hibernate] or [mybatis][mybatis]\r
\r
-### fluent, type-safe SQL DSL with rich object mapping\r
+### Fluent, type-safe SQL DSL with rich object mapping\r
\r
Born from the unfinished [JaQu][jaqu] subproject of H2 in August 2011, Iciql has [advanced the codebase](jaqu_comparison.html) & DSL greatly. It supports more SQL syntax, more SQL data types, and all standard JDBC object types.\r
\r
}\r
---JAVA---\r
\r
-### dynamic, annotated DAO with standard crud operations\r
+### Dynamic, annotated DAO with standard crud operations\r
\r
Inspired by JDBI, Iciql offers a similar [DAO feature](dao.html). There are some clear benefits to using SQL directly rather than SQL-through-a-DSL so use each one where it makes the mose sense.\r
\r
}\r
---JAVA---\r
\r
-### flexible field data types\r
+### Flexible field data types\r
\r
The [Data Type Adapter feature](dta.html) allows you to customize how your SQL column data types map to/from Java objects.\r
\r
\r
You might use this to take advantage of the underlying database's type system. For example, PostgreSQL ships with the compelling JSON/JSONB/XML data types. Iciql provides String and Object adapters to facilitate use of those data types.\r
\r
-### runtime mode support\r
+### Runtime mode support\r
\r
Mode support allows you to tweak the behavior of your `@TypeAdapter` and `DAO` implementations to adapt to runtime conditions such as developing on a different database than you deploy on.\r
\r
\r
Support for others is possible and may only require creating a simple "dialect" class.\r
\r
+### Downloading\r
+\r
+As of 2.0.0 iciql is now distributed through Maven Central and it's coordinates have changed slightly.\r
+\r
+```xml\r
+<dependencies>\r
+ <dependency>\r
+ <groupId>com.gitblit.iciql</groupId>\r
+ <artifactId>iciql</artifactId>\r
+ <version>2.0.0/version>\r
+ </dependency>\r
+</dependencies>\r
+```\r
+\r
### Java Runtime Requirement\r
\r
iciql requires a Java 6 Runtime Environment (JRE) or a Java 6 Development Kit (JDK).\r