Я нашел iBatis из группы Apache как отличное решение этой проблемы. В настоящее время моя команда использует iBatis для сопоставления всех наших вызовов с Java на наш сервер MySQL. Это было огромным преимуществом, поскольку легко управлять всеми нашими запросами и процедурами SQL, потому что все они находятся в файлах XML, а не в нашем коде. Отделение SQL от вашего кода, независимо от того, на каком языке, очень помогает.
Кроме того, iBatis позволяет вам создавать собственные сопоставители данных для отображения данных в ваши объекты и из них в БД. Мы хотели этой гибкости, в отличие от решения типа Hibernate, которое делает все за вас, но также (IMO) ограничивает вашу способность выполнять сложные запросы.
Существует также .NET-версия iBatis.