from a java program I want to make a SQL query on the fly . I mean the query will be setup based on my logic ( it should not be like I wrote a query in the program and I will make a JDBC call to access a DB ). now what is the best design to do that . I'll use IntelJIdea with MySQL . and what is a DAO .