Вероятно, вы можете обновить ОЗУ на своем сервере дешевле, чем за несколько дней разработки, поэтому не пишите никакого кода, если это все, что вы получаете от этого упражнения. Кроме того, только то, что память используется внутри tomcat, не означает, что сам tomcat использует ее. Память может быть использована данными или техническими ошибками в вашем коде.
Если вы попробовали дополнительную оперативную память, и она израсходована, то это пахнет проблемой кодирования, поэтому я бы предложил использовать профилировщик или данные журнала, чтобы попытаться выяснить, в чем причина, прежде чем что-либо менять , Если причиной являются большие наборы данных, то непосредственное использование базы данных только отсрочит неизбежное, вместо этого вам нужно будет рассмотреть такие вещи, как разбиение на страницы, суммирование, кэширование на стороне клиента или редизайн клиентов, чтобы уменьшить использование дорогих запросов. Использование профилировщика или простой просмотр базы кода также скажет вам, если что-то создает слишком много объектов (особенно строк или узлов XML) или утечка памяти.
Код таблички котла можно избежать путем творческого рефакторинга, и хорошо, что вы избегаете повторения. Неясно, сколько у вас уже может быть структуры, но после небольшой работы легко централизовать стандартные вызовы JDBC. Нет фундаментальной причины, по которой код JDBC должен повторяться, возможно, вы могли бы сказать нам, какой код повторяется?
Наконец, я рискну, что есть много веских причин для размещения веб-уровня над вашей базой данных. Гибкость (развертывания), совместимость, контроль (над SQL) и безопасность - все это веские причины для сохранения веб-уровня.