Earlier quoted context omitted.
How exactly are you going to "just write SQL" if the actual query statement needs to change based on the user input? How about something like this: s = Select.new s.add "WHERE title LIKE #{title}" if title s.add "WHERE price Note how I deliberately shuffled the order and didn't bother with escaping. Also note how anyone who knows SQL could immediately work with this, learning curve: 5 seconds. Why is there no ORM tha…
There is. MyBatis, which is a minimal ORM that aims to keep you as close to SQL as possible, has support for dynamic SQL: https://mybatis.github.io/mybatis-3/dynamic-sql.html Edit [responding to moe, below]: that's a matter of taste. I prefer to have my SQL _outside_ my code. If I have to write a little XML to make it happen, so be it. Additionally, unlike your example, a strict separation of SQL and data ensures SQL…
Does MyBatis have an API similar to what I outlined above?
Because the page that you link to shows a horror that I can't even begin to describe:
SELECT * FROM BLOG
WHERE state = ‘ACTIVE’
AND title like #{title}
SQL mixed with proprietary XML soup?
Talk about combining the worst from all worlds...