powerpokin 2017-01-13 07:38 采纳率: 0%
浏览 3048

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报错,但是本地测试没有这个情况出现

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料