poolPreparedStatements - это параметр для пула соединений Tomcat JDBC, а cachePrepStmts - это параметр для Connector / J, который сообщает MySQL для кэширования подготовленных операторов. Две совершенно разные вещи. cachePrepStmts является настройкой для каждого соединения, но Connector / J не заботится о том, подключается ли он к пулу соединений с базой данных или напрямую к MySQL, однако cachePrepStmts лучше всего работает с постоянными соединениями (например, пулами соединений). Использование cachePrepStmts с пулом соединений является оптимальной конфигурацией. Использование poolPreparedStatements в Tomcat - это открытие червя для управления памятью (ознакомьтесь с документацией Tomcat для этого параметра, и вы увидите). На самом деле, лучше всего разрешить MySQL кэшировать подготовленные операторы и позволить Tomcat объединять соединения, а не пытаться заставить одно выполнять работу другого.