方法一:让线程从配置中取DataSource。

方法二:从配置中取出SessionFactory,然后交给线程去创建session和Connection,举例如下:

// Get Session Factory
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("root-context.xml");
DefaultSqlSessionFactory sqlSessionFactory=(DefaultSqlSessionFactory)ctx.getBean("sqlSessionFactory");

for (String table : myJobInfo.tableList) {
...
    CleanExpiredDataJobThread ct=new CleanExpiredDataJobThread();
    ct.setParams(index,table,myJobInfo.expiredDate,myJobInfo.commitSize,sqlSessionFactory,this);
    new Thread(ct).start();
...
}

线程里可以这样用:

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;

public class CleanExpiredDataJobThread extends AbstractJob implements Job,Runnable {
    private org.apache.ibatis.session.defaults.DefaultSqlSessionFactory sqlSessionFactory;

    ....

    @Override
    public void run(){
        logger.info("Start...");
        long startTime = System.currentTimeMillis();

        try {
            SqlSession sqlSession = null;
            sqlSession = sqlSessionFactory.openSession();

            // get connection and set it's auto-commit status to false
            Connection conn = getConnection(sqlSession);

            ....
        }catch(Exception ex) {
            ex.printStackTrace();
        }finally {

        }

    }
}

--END-- 2019年11月17日12:08:15

【Java】线程需要独立的Connection,那对已经配好session的Spring/Mabatis工程该怎么办?的更多相关文章

  1. [不得不知道系列]Java线程面试你不得不知道的基础知识一

    Java内存管理面试指南一 Java基础面试指南一 Java基础面试指南二 Java基础面试指南三 Java基础面试指南四 Java线程面试指南一 Java线程面试指南二 Redis面试指南一 Kaf ...

  2. java线程本地变量

      ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名为Thre ...

  3. Java线程演示样例 - 继承Thread类和实现Runnable接口

    进程(Process)和线程(Thread)是程序执行的两个基本单元. Java并发编程很多其它的是和线程相关. 进程 进程是一个独立的执行单元,可将其视为一个程序或应用.然而,一个程序内部同事还包括 ...

  4. Java 线程

    线程:线程是进程的组成部分,一个进程可以拥有多个线程,而一个线程必须拥有一个父进程.线程可以拥有自己的堆栈,自己的程序计数器和自己的局部变量,但不能拥有系统资源.它与父进程的其他线程共享该进程的所有资 ...

  5. Java线程的概念

    1.      计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...

  6. Java线程

    线程 线程 线程(Thread)是控制线程(Thread of Control)的缩写,是程序运行的基本单位,它是具有一定顺序的指令序列(即所编写的程序代码).存放方法中定义局部变量的栈和一些共享数据 ...

  7. 【转载】 Java线程面试题 Top 50

    Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员 的欢迎.大多数待遇丰厚的J ...

  8. 第21章 java线程(1)-线程初步

    java线程(1)-线程初步 1.并行和并发 并行和并发是即相似又有区别: 并行:指两个或者多个事件在同一时刻点发生. 并发:指两个或多个事件在同一时间段内发生 在操作系统中,并发性是指在一段事件内宏 ...

  9. JAVA 线程中的异常捕获

    在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...

随机推荐

  1. SQLSEVER 同台服务器下不同表 触发器实现数据实时同步

    触发器的使用: 1.首先建立两个相同结构的表,两个表明的列的名称不同. student_01   字段  name  ;  字段 age  ; 字段  class ; student_02   字段  ...

  2. RestFramework之频率组件

    一.频率组件的使用 频率组件的存在对我们这web开发有着很大的影像,它的作用就是限制用户在一段时间内访问的次数. 下面让我们介绍一下频率组件怎样使用 1.首先需要导入 from rest_framew ...

  3. 【DRF框架】利用序列化组件操作

    使用序列化组件进行操作 不带参数:查+增 带参数:查.改.删 不带参数的操作 # url路由 url(r'^book_list/$',Search_book.as_view()), # views.p ...

  4. 使用jquery和使用框架的区别

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 纯js验证码

    纯js验证码 <!DOCTYPE html> <html> <head> <title>纯js验证码</title> </head&g ...

  6. JS 使用RSA加密解密

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>使 ...

  7. Codeforces Round #609 (Div. 2) D. Domino for Young

    链接: https://codeforces.com/contest/1269/problem/D 题意: You are given a Young diagram. Given diagram i ...

  8. Selenium常用API的使用java语言之6-WebDriver常用方法

    前面我们已经学习了定位元素, 定位只是第一步, 定位之后需要对这个元素进行操作, 或单击(按钮) 或 输入(输入框) , 下面就来认识这些最常用的方法. 1.WebDriver 常用方法 下面先来认识 ...

  9. 突然萌发关于 redis 的想法(1)

    本来昨天就打算写这篇了,但是熬到忘了,至于为什么要写这个是因为我昨天在写 redis 的时候突然想到的 注:此篇文章并没有讲解 redis 内部的使用 或 如何使用redis写代码,等等..仅仅只是突 ...

  10. WEB知识补充 支付宝 支付