2 powerpokin powerpokin 于 2017.01.13 15:38 提问

no operations allowed after connection closed

数据库连接配置

<!-- 配置MyBatis3的环境 -->
<environments default="env">
    <!-- 配置一个环境 -->
    <environment id="env">
        <!-- 配置事务管理器 JDBC(有事务)、MANAGED(托管) -->
        <transactionManager type="JDBC" />
        <!-- 配置数据源 JNDI(web服务器方式定义数据源)、POOLED(自带连接池)、UNPOOLED(不带连接池) -->
        <dataSource type="POOLED">
            <!-- 连接数据库驱动 -->
            <property name="driver" value="com.mysql.jdbc.Driver" />
            <!-- 连接数据库URL -->
            <property name="url" value="jdbc:mysql:///wkmj_wechat?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull" />
            <!-- 连接数据库用户名 -->
            <property name="username" value="root" />
            <!-- 连接数据库密码 -->
            <property name="password" value="root" />
        </dataSource>
    </environment>
</environments>

JAVA代码

/**

  • 获取SqlSession和关闭SqlSession的基础类
  • @author Administrator * */

public class BaseDao {
private static SqlSessionFactory factory;
/**
* 线程对象
/
private static ThreadLocal threadLocal = new ThreadLocal<>();
/
*通过静态块初始化SqlSessionFactory,因为静态块只会在类第一次加载的时候执行*/
static {
try(InputStream in = Resources.getResourceAsStream("mybatis_config.xml");) {
factory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
System.err.println("数据库连接工厂获取失败!");
}
}
/**
* 获取SqlSession对象
* @return SqlSession
*/
public static SqlSession getSqlSession(){
//通过ThreadLocal获取sqlSession对象
//第二次进来的时候就可以从threadLocal.get()中获取
SqlSession sqlSession = threadLocal.get();

    if(sqlSession == null){
        //获取一个SqlSession对象
        sqlSession = factory.openSession();
        //并存储到ThreadLocal对象中,通过ThreadLocal对象可以方便进行线程同步管理
        //前程同步交给工具管理
        threadLocal.set(sqlSession);
    }
    return sqlSession;
}
/**
 * 关闭SqlSession对象
 */
public static void closeSqlSession(){
    SqlSession sqlSession = threadLocal.get();
    if(sqlSession != null){
        sqlSession.close();
    }
    threadLocal.remove();
}

}

发布到服务器后每隔几次点击就会有no operations allowed after connection closed报错,但是本地测试没有这个情况出现

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!