mysql修改字符编码为utf8,操作数据库会报数据池错误

WonHyo 2018-04-24 09:43:28
mysql版本为5.5,修改配置文件my.ini里面的character-set-server=utf8,由latin1改成utf8用来处理数据库中文乱码问题。
但在操作数据库的时候,会报以下错误

ERROR: HHH000246: SQLException escaped proxy
java.sql.SQLException: You can't operate on a closed Statement!!!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118)
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:77)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.clearBatch(NewProxyPreparedStatement.java:1115)
at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.releaseStatements(AbstractBatchImpl.java:163)
at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.release(AbstractBatchImpl.java:197)

网上说是c3p0数据池的报错,配置如下

<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/test" />
<property name="user" value="root" />
<property name="password" value="sql12345" />
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize" value="1" />
<!--连接池中保留的最小连接数。 -->
<property name="minPoolSize" value="1" />
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize" value="300" />
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="60" />
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="5" />
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="60" />
</bean>

有遇到过这种问题的,请教一下,谢谢
...全文
973 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2019-01-17
  • 打赏
  • 举报
回复
引用 6 楼 44542717 的回复:
Mark一下 Java并发那些事(基础篇) https://www.jianshu.com/p/470f96bde10e
宣传你的文章什么的大家都能理解,但请你适可而止,你一个问题都不回答,而且你这广告发了一屏了,还把几个月前的帖子搞上来,严重影响我看帖子,我已经举报你了。
大寒Num1 2019-01-17
  • 打赏
  • 举报
回复
Mark一下 Java并发那些事(基础篇) https://www.jianshu.com/p/470f96bde10e
诺丽果 2018-04-26
  • 打赏
  • 举报
回复
引用 3 楼 u010049086 的回复:
[quote=引用 1 楼 weixin_39309867 的回复:] 你把你的这个 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test" />改成 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true" />
还是不行[/quote]那你别用c3p0了,改成这个:
<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
聪头 2018-04-26
  • 打赏
  • 举报
回复
You can't operate on a closed Statement!!! 检查一下具体报错的代码段
QWERT4745 2018-04-25
  • 打赏
  • 举报
回复
诺丽果 2018-04-25
  • 打赏
  • 举报
回复
你把你的这个 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test" />改成 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true" />
WonHyo 2018-04-25
  • 打赏
  • 举报
回复
引用 1 楼 weixin_39309867 的回复:
你把你的这个 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test" />改成 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true" />
还是不行

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧