There's a business reason for this related to how queries can be routed between slave and master. From this question I know it's possible in Connector/J, but reading c3p0's documentation it never seems to distinguish between server side and client side statement caching, and given its discussion on memory use and such I assume it means client side. (IOW, I can't even confirm c3p0 uses server side prepared statements at all). How can I control this?
Per answer on related question
The Connector/J driver handles prepared statements locally unless you turn on real server side statements using the connection parameter useServerPrepStmts=true.