错误:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state. 
执行: 
mysql﹥ show global variables like 'wait_timeout'; 
后显示 
| wait_timeout | 28800 | 

28800单位为秒 

原文参考自站长网http://www.software8.co/wzjs/mysql/2506.html

如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。 
28800太小,修改my.ini,在里面增加wait_timeout=XXXXX,保存后重启mysql