java.sql.SQLException: Unknown system variable 'tx_isolation'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
at com.mysql.jdbc.ConnectionImpl.getTransactionIsolation(ConnectionImpl.java:3117)
at com.mchange.v2.c3p0.impl.NewPooledConnection.<init>(NewPooledConnection.java:107)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:198)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
原因:mysql-connector-java的版本太低,之前使用的是5.1.6,报该错误,修改为:8.0.13之后不报错
注意:idea中External Libraries需要将原来版本的mysql-connector-java删除
能不能别只是标题啊,你要求教什么东西明确点!还得回答!
练级池满!
第一个要查,你的代码是不是合理:
第一项,要查是不是连接都会被关闭!比如忘记close
第二项要查连接是不是会关闭,比如 下面代码就是有问题的。
try
{
if (null != recordset)
recordset.close()
if (null != statments)
statments.close()
if (null != connection)
connection.close()
} 。。。。。。。
如果 record 关闭出异常了,那么 statments \connection 都不会关闭,因为代码没有执行到,在record那个部分就跳出去了。
第二个要看你数据库端,看看数据库的连接是否都被收回。
第三个要看你的事务和并发,长事务,高并发是会出现连接池供不应求的。
你要问的是不是jdbc连接池总是满的怎么解决?解决方法如下:1、扩大链接池数量,治标不治本。
2、检查程序,使用完的链接要关闭。
jdbc是java语言提供的一套访问关系数据的接口。关系数据不仅仅是关系型数据库,也可以是一些关系型文件,只要相应的数据源提供实现jdbc接口的驱动。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)