原因:java.sql.sqlexception:连接已关闭

mum43rcc  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(1534)

数据库:mydql
连接池:druid
jdk7型
肌炎

org.springframework.jdbc.UncategorizedSQLException:

### Error querying database.  Cause: java.sql.SQLException: connection is closed

### The error may exist in class path resource [mybatis1/hotel/StopRoomRecordMapper.xml]

### The error may involve StopRoomRecordMapper.getByModel

### The error occurred while executing a query

### Cause: java.sql.SQLException: connection is closed

; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; connection is closed; nested exception is java.sql.SQLException: connection is closed
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:90)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
        at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)
        at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:364)
        at com.sun.proxy.$Proxy16.selectOne(Unknown Source)
        at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
        at com.leyizhu.dao.DaoSupport.findForObject(DaoSupport.java:155)
        at com.leyizhu.dao.hotel.impl.StopRoomRecordDaoImpl.getByRoomTypeIdAndTradeDate(StopRoomRecordDaoImpl.java:96)
        at com.leyizhu.dao.hotel.impl.StopRoomRecordDaoImpl.save(StopRoomRecordDaoImpl.java:34)
        at com.leyizhu.service.hotel.impl.StopRoomRecordService.save(StopRoomRecordService.java:31)
        at com.leyizhu.service.hotel.impl.StopRoomRecordService$$FastClassBySpringCGLIB$$5ef83be9.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
        at com.leyizhu.service.hotel.impl.StopRoomRecordService$$EnhancerBySpringCGLIB$$b431adda.save(<generated>)
        at com.leyizhu.task.timer.client.RecordStopRoom.execute(RecordStopRoom.java:54)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: java.sql.SQLException: connection is closed
        at com.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1050)
        at com.alibaba.druid.pool.DruidPooledConnection.getAutoCommit(DruidPooledConnection.java:722)
        at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:81)
        at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:66)
        at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:315)
        at org.apache.ibatis.executor.ReuseExecutor.prepareStatement(ReuseExecutor.java:78)
        at org.apache.ibatis.executor.ReuseExecutor.doQuery(ReuseExecutor.java:58)

代码:

@Override
public void save(StopRoomRecord model) throws Exception {
    StopRoomRecord stopRoomRecord = getByRoomTypeIdAndTradeDate(model.getRoomtypeid(), model.getTradedate());
    if (stopRoomRecord != null) {
        //存在则更新数据
        model.setId(stopRoomRecord.getId());
        update(model);
    } else {
        //否则新增
        model.setId(UuidUtil.get32UUID());
        model.setCreatetime(new Date());
        dao.save("StopRoomRecordMapper.save", model);
    }
}
yqlxgs2m

yqlxgs2m1#

检查数据源bean(连接池)的配置。我将singleconnectiondatasource用于我的单线程应用程序。请尝试使用DriverManager数据源进行测试。
使用--trace键启动应用程序。可能有用。

相关问题