spring、mybatis整合多线程问题 5C

1.在已有的spring+mybatis项目中增加了多线程访问数据库的业务,主要是查询,添加,写入到其它数据源。
2.部分需要支持多线程的service类已增加@scope("prototype"),从debug可以看到service获取到的已是不同的对象(service是线程类,获取方式通过spring上下文获取)。
3.service中注解的mapper是单例的,运行过程中经常报连接已关闭。开始的想法是在mapper接口上也加入@scope("repository")注解,结果加上后,程序启动报错。
4.现在我是直接用原始jdbc来处理可以很好的解决多线程的问题,想请教下大家在原有的框架中怎么处理才能支持多线程。



#2018年4月8日,更新
问题已解决,在service类中注解SqlSessionFactory对象,通过openSession方法可以获取到一个SqlSession对象,然后getMapper出来的对象就是线程安全的。

3个回答

多线程并发可以考虑用并发锁解决你说的问题。单服务情况下直接内存是用synchronized。分布式服务的话可能需要引入redis缓存数据库来加锁。希望能解决你的问题。

多线程并发可以考虑用并发锁,分段锁解决你说的问题。
单服务情况下直接内存是用synchronized。手动使用lock锁比较适合,分布式服务的话可能需要引入redis缓存数据库来加锁。希望能解决你的问题。

使用数据库连接池,常用数据库连接池 (DBCP、c3p0、Druid)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring与MyBatis整合问题
spring与MyBatis整合的时候我想使用spring注解将MyBatis的dao实例化,但MyBatis的dao是一个接口加一个XML。请问如何处理?
spring与mybatis整合问题
显示配置文件不存在 it doesn't exit 很可能是未编译 两种解决办法 1 在pom文件上面加上 <build> <finalName>tourst</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven de...
spring和mybatis整合的问题
好不容易整合了spring和mybaits框架,之前一直有问题,现在把几个地方脱坑的注意一下:mybaits.xml配置<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd...
spring与mybatis整合事务回滚问题
废话不多说了,直接说情况,接手新的项目,框架是spring+springmvc+mybatis,在service层事务处理时,事务不回滚,看了下配置文件,发现了问题,所以再此说一下,配置事务需要注意的几个问题 1.web.xml中将spring的配置文件配置到容器中如下: <context-param>     <param-name>contextConfigLo...
spring和mybatis整合遇到的问题
spring和mybatis整合遇到的问题 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: org.springframework.jdbc.Cannot...
mybatis spring 整合的一点问题
----------spring配置文件----------------rnrnrnrnrnrn rn rn rn rn rn rn rnrn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rnrn rnrn----------mybatis配置文件----------------rn rnrnrn rn rn rn rn rn rn rn rnrnrn----------mapper配置文件----------------rn rn rnrnrnrn rn select * from student2 rn rnrn rnrn----------mapper接口----------------rnpackage com.insigma.mappers;rnrnimport java.util.List;rnrnimport org.springframework.stereotype.Component;rnrnimport com.insigma.model.Student;rnrnpublic interface Mapper rnrn public List getAll();rnrnrnrn----------Student 类----------------rnpackage com.insigma.model;rnrnpublic class Student rnrn private int id;rn rn private String name;rnrn public int getId() rn return id;rn rnrn public void setId(int id) rn this.id = id;rn rnrn public String getName() rn return name;rn rnrn public void setName(String name) rn this.name = name;rn rn rnrnrnrn----------测试代码----------------rnpublic static void main(String[] args) rn rn ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");rnrn System.out.println(context.getBean("myDataSource"));rn System.out.println(context.getBean("sqlSessionFactory"));rn rn System.out.println(context.getBean("mapper"));rn System.out.println(context.getBean("test"));rn rn rnrn----------测试结果----------------rnorg.apache.commons.dbcp.BasicDataSource@19e8f17rnorg.apache.ibatis.session.defaults.DefaultSqlSessionFactory@c44b88rnnullrncom.insigma.test.Tes@17e121crnrn----------问题----------------rnrn所有配置都好像没错 为什么System.out.println(context.getBean("mapper"))输出null ??? 在线求解 rnrn
spring与mybatis 整合中的问题
在spring和mybatis整合中,applicationContext.xml中配置一般会配置两个属性: 1.dataSource这个不多说,可以用mybatis自带的datasource,也可以用连接池。 [code="java"] [/code] ...
Spring与Mybatis整合出现的问题
先看问题描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.fdd.dao.IStudentDao.insertStudent at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(Mappe...
Spring和Mybatis整合版本问题
在Spring和Mybatis整合时,由于Sring框架好人Mybatis框架以及Spring和Mybatis整合包版本不兼容问题,会出现如下异常 java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;     a
Mybatis学习笔记-Mybatis与Spring的整合
项目结构650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4B/60/wKioL1QqsBewRg1tAAE5SdbmwyQ159.jpg" title="QQ截图20140930212703.jpg" alt="wKioL1QqsBewRg1tAAE5SdbmwyQ159.jpg" />User.java实体类public cla
mybatis整合Spring
MyBatis整合Spring所有的jar包,需要的来下载一下吧,欢迎下载!!!
spring和Mybatis整合jar包
spring和Mybatis整合jar包,各个jar包的分类已经做好了。
cxf + spring + mybatis 整合
使用apach cxf spring mybatis 整合 web sevices dome 注释 详细
Spring mvc Mybatis整合
Spring mvc + Spring +MyBatis整合有一个用户表的增删查改操作。在文件里面有数据库表的SQL
Spring Mybatis整合
Spring Mybatis整合的小demo
springmvc,spring,mybatis整合
SPRINGMVC SPRING MYBATIS 利用maven整合起来,有实际例子,可以节省新手的配置时间
mybatis整合spring 实例
本实例是mybatis与spring的整合实例,代码一目了然,很容易看懂
spring和mybatis整合
详细讲解了spring和mybatis的整合
【Spring】XML配置整合Mybatis
注意:项目开发使用了mybatis的mapper代理! 首先是mybatis自己的配置文件,被spring整合之后,只有typeAliases存在了,其他都整合在了spring-mybatis.xml: <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/myb
spring和mybatis的整合简介
今天我来说一下我spring和mybatis的整合,我也是才学这个只能给大家讲一些粗浅的,有大神路过请指点一二 ,谢谢 好现在我们开始讲解首先 我们还是需要导入jar包,这次我们需要的jar包比较多第二步搭建整体的框架 包括:dao接口层,mapper.xml pojo层,User service层 service接口 serviceI
MyBatis和Spring进行整合
编写UserMapper.java: package cn.cstor.mapper; import cn.cstor.pojo.User; public interface UserMapper { public User selectUserById(Integer id); } 编写UserMapper.xml: &amp;lt;?xml version=&quot;1.0&quot; en...
【spring配置】——spring与mybatis整合
配置webxml文件: org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:/application-context.xml 配置spring.xml文件: MapperFactoryBean方式: <bea
MyBatis + Spring 整合示例代码
MyBatis + Spring 整合示例代码 springmvc.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframewo
spring,mybatis整合
springmvc,mybatis整合简单实例
Spring与Mybatis的整合流程
Spring与Mybatis的整合 1、什么是Spring和Mybatis整合的原理 Mybatis是一个持久层框架,它将我们平时用的jdbc进行封装,从而进一步地简化代码,不过Mybatis要依赖于数据源,这个数据源可以是mybatis自带的,也可以引入第三方的数据源,第三方常用的数据源有C3P0和Druid连接池。 Spring的作用是管理Bean. 综上所诉:Spring于Mybatis进行...
Spring和Mybatis整合(二)
1.创建mybatis-config.xml &amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt; &amp;lt;!DOCTYPE configuration PUBLIC &quot;-//mybatis.org//DTD Config 3.0//EN“ &quot;http://mybatis.org/dtd/mybatis-3-config.dtd&quot;&amp;gt; &amp;lt;configu...
spring和mybatis的整合方式
1.Dao类继承org.mybatis.spring.support.SqlSessionDaoSupport   Spring配置文件   &amp;lt;bean id=&quot;sqlSessionFactory&quot; class=&quot;org.mybatis.spring.SqlSessionFactoryBean&quot;&amp;gt; &amp;lt;property name=&quot;dataSource&quot; r...
mybatis整合spring异常
异常信息:rnjava.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.richeninfo.cmcc.esop.web.mapper.KmsCategoryMapper.getLevel1rn at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:669)rn at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:504)rn at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:497)rn at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:240)rn at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:71)rn at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:39)rn at sun.proxy.$Proxy20.getLevel1(Unknown Source)rn at com.richeninfo.cmcc.esop.web.service.impl.KmsCategoryManager.getLevel1(KmsCategoryManager.java:106)rn at com.richeninfo.cmcc.esop.web.controller.EsopMobileController.QueryCategorylist(EsopMobileController.java:587)rn at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)rn at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)rn at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)rn at java.lang.reflect.Method.invoke(Unknown Source)rn at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)rn at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)rn at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)rn at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)rn at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)rn at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)rn at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)rn at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)rn at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)rn at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)rn at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)rn at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)rn at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)rn at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)rn at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)rn at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)rn at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)rn at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)rn at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)rn at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)rn at java.lang.Thread.run(Unknown Source)rnSpring 配置:rn rn rn rn rn rn rn rn rn rn rnSQL 配置:rnrnrn select C.* from ESOP_KMS_CATEGORY C rn inner join CATE_TYPE T ON C.CATE_TYPE_ID = T.TYPE_IDrn rn rn AND T.TYPE_ID = #typeIdrn rn rn AND C.CATE_LEVEL = #cateLevelrn rn rn AND t.login_id = #loginIdrn rn rn AND C.PARENT_ID = #cateIdrn rn rn AND C.IS_FEEL = #isFeelrn rn rn order by C.ADD_TIMErn rn
Spring与MyBatis整合意义
MyBatis是继Hibernate开发框架之后使用为广泛的实体层开发技术,在Java软件开发中开始占据着越来越重要的地位,同时也是广大的互联网公司使用多的开发框架。本课程将为读者完整的讲解MyBatis开发技术。官方QQ群:612148723。
spring cloud整合mybatis
spring cloud整合mybatis,spring cloud整合mybatis,spring cloud整合mybatis
spring与mybatis整合配置文档
本文档是针对ssm编写的spring与mybatis整合的xml配置文件,后期还会发布mybatis配置文件。
spring boot mybatis整合
该实例运用的时IDEA 工具开发,项目为grandle项目
spring 及mybatis 整合jar包
springjar包,mybatice和spring整合jar包,上传文件jar包,spring源码jar包
spring boot 整合mybatis
基于spring boot, 整合mybatis,自动生成mybatis代码。
Struts,spring,Mybatis整合
Struts,Spring和Mybatis的整合,里面有两种整合方式,只要学会其中的一种就可以了
spring boot整合mybatis
spring boot整合mybatis+spring mvc
spring 整合mybatis
网上说mvc:annotation-driven配置为@Controllers分发请求所必须的;但是在配置文件中并没有配置,运行时也没有报错。请知道原因的告我原因。谢谢
spring mybatis的整合
使用myeclipse搭建的spring+mybatis 使用mysql数据库数据库比较简单自己就可以写!包含了整合时所需的jar包;自己测试过能出现代码模块和实体类是使用mybatis-generator-tool工具自动生成的!有兴趣的可以下载参考!
spring mybatis整合
spring mybatis整合学习demo 版本:Spring3.2,mysql,mybatis3.2.7
mybatis整合spring
mybatis整合spring
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制