ssm配置多个数据源说明

ssm项目配置多个数据源(看到最后,最后是重点) 在项目中到一些问题,一些查询模块需要链接另一个数据库,这时,就可以配置两个数据源进行操作。 1.创建jdbc.properties jdbc.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8 jdbc.driver = com.mysql.jdbc.Driver jdbc.us... 阅读详情

ssm配置多个数据源说明


简介:一个项目,连接多个数据库,通过切换动态数据源,达到增删查改的目的;直接上代码,步骤如下:
1:配置多个连接信息
`#Thu Nov 22 18:09:33 CST 2012
jdbc1.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc1.url=jdbc:sqlserver://ip:端口号;DatabaseName=库名
jdbc1.username=用户名
jdbc1.password=密码

#mysql
jdbc2.url=jdbc:mysql://ip:端口号/zedadisplay
jdbc2.driver=com.mysql.jdbc.Driver
jdbc2.username=用户名
jdbc2.password=密码
2:配置动态数据源,将数据源交由sqlsessionfactory去处理;备注动态数据源部分需要重写jdbc的方法,即:com.siweisoft.utils.dynamicDataSource.DynamicDataSource包下的方法,包名可按照自己的报名去更改

<bean id="dataSource1" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<property name="url" value="${jdbc1.url}" />
		<property name="username" value="${jdbc1.username}" />
		<property name="password" value="${jdbc1.password}" />
		<property name="driverClassName" value="${jdbc1.driver}" />
		<property name="maxActive" value="10" />
		<property name="minIdle" value="5" />
	</bean>
	
	<bean id="dataSource2" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<property name="url" value="${jdbc2.url}" />
		<property name="username" value="${jdbc2.username}" />
		<property name="password" value="${jdbc2.password}" />
		<property name="driverClassName" value="${jdbc2.driver}" />
		<property name="maxActive" value="10" />
		<property name="minIdle" value="5" />
	</bean>
<bean id="dataSource" class="com.siweisoft.utils.dynamicDataSource.DynamicDataSource">
	<property name="targetDataSources">
		<map key-type="java.lang.String">
			<entry key="dataSource1" value-ref="dataSource1" />
			 <entry key="dataSource2" value-ref="dataSource2"/>
			  
		</map>
	</property>
	<!-- 默认目标数据源为主库数据源 -->
	<property name="defaultTargetDataSource" ref="dataSource1" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 数据库连接池 -->
	<property name="dataSource" ref="dataSource" />
	<!-- 加载mybatis的全局配置文件 -->
	<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
</bean>

3:重写jdbc方法(备注:DynamicDataSource 方法中的@Order(1)必不可少,如果不加出现的bug以及原因见总结)
public class DbContextHolder {
private static final ThreadLocal contextHolder = new ThreadLocal();

/** * 设置当前数据库。 * @param dbType */
public static void setDbType(String dbType) {
	contextHolder.set(dbType);
}

/** * 取得当前数据源。 * @return */
public static String getDbType() {
	String str = (String) contextHolder.get();
	return str;
}

/** * 清除上下文数据 */
public static void clearDbType() {
	contextHolder.remove();
}

}

public class DynamicDataSource extends AbstractRoutingDataSource {
	/** * 取得当前使用那个数据源。 */
	@Order(1)
	@Override
	protected Object determineCurrentLookupKey() {
		return DbContextHolder.getDbType();
	}
}

4:前期工作已完成,编写测试文件,用来操作数据库,本人将方法写在了service层(备注:重点就是DbContextHolder.setDbType(“dataSource2”);// 切换数据源这一句话,将需要切换数据源的地方,加上这一句话就可以“dataSource2”为:第二步bean的id)
@Service(“appUserCidService”)
public class AppUserCidService {
@Resource
private AppUserCidMapper appUserCidMapper;

public int UpdateCid(String userid) {
	DbContextHolder.setDbType("dataSource4");// 切换数据源
	return appUserCidMapper.updateByPrimaryKey(userid);
}
}

总结:如不加,会出现切换数据源不成功,仍然使用默认数据源的问题。原因:AbstractRoutingDataSource的determineCurrentLookupKey方法执行的比自己写的AOP切换逻辑执行的早,导致切换后还是用默认的数据源,AOP切面的执行顺序可以通过@Order注解调整解决

SSM框架连接MySQL 8数据源配置与实践 在Spring框架中配置MySQL数据源是构建企业级Java应用的一个基础步骤。随着MySQL 8的发布,配置细节与先前版本有所不同。正确配置数据源不仅包括连接信息的基本设置,还涉及到性能优化和安全配置。本章将介绍如何在Spring项目中配置MySQL 8的数据源。通过本节的分析与案例,可以看出解决SSM与MySQL 8的兼容性问题需要综合考虑多个方面的调整。开发者需要对MySQL的新特性和变更保持敏感,并准备好对应用程序进行相应的调整。 阅读详情

相关推荐

基于SSM框架的多数据源配置实战

SSM(Spring + Spring MVC + MyBatis)是当前Java Web开发中最主流的轻量级框架组合。Spring作为核心容器,通过IoC(控制反转)管理对象生命周期与依赖关系,通过AOP(面向切面编程)实现日志、事务等横切关注点的解耦;Spring MVC则负责Web层的请求调度,具备灵活的控制器、视图解析和数据绑定机制;MyBatis作为持久层框架,采用ORM(对象关系映射)方式,将Java对象与数据库记录进行映射,简化数据库操作。

weixin_35972981的博客 952

SSM配置双数据源

讲解了在SSM框架中双数据源的配置方法以及调用方法。

Java.L的博客 964

ssm实现多数据源配置

ssm实现多数据源配置ssm实现多数据源配置ssm实现多数据源配置ssm实现多数据源配置,

SSM 多数据源配置

ssm项目双数据源配置

qq_33609768的博客 493

SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

SSM(Spring+SpringMVC+MyBatis)多数据源配置框架,精简版

信号处理中的滤波器的阶数和谐波的理解

最近在读paper的时候,遇到了一些以前遗忘的问题,先重新查找,记录在这里,以备不时之查看。 我相信一定有小伙伴跟我有过一样的疑惑,那就是我们在使用滤波器的时候,总是遇到滤波器的阶数这个概念参数,我们很多都是根据别的paper里的设置,设置自己的科研参数,其实并不是很理解其中的含义: 其实我们常用的阶数N的意思是: 滤波器的阶数,就是指过滤谐波的次数,一般来讲,同样的滤波器,其阶

Miracle.Zhao的博客 2万+

SSM 配置两个数据源

SSM项目,切换数据源的使用

m0_58797574的博客 1055

保姆级教程:用Arduino+MPU6050自制寻北仪(附MEMS陀螺精度测试报告)

本文提供了一份详细的Arduino与MPU6050自制寻北仪的保姆级教程,包括硬件选型、卡尔曼滤波算法优化、地磁场补偿及真北计算等关键技术。通过实测数据展示了MEMS陀螺仪在民用领域的高精度性能,帮助读者低成本实现1°以内的寻北精度。

weixin_42522964的博客 364

SSM项目中配置多数据源

前文:近期SSM项目中需要对接其他系统,涉及到多个数据源的配置,在这里记录一下,方便以后自己查阅。 使用的数据库是sqlserver,步骤如下: 1、编写dbproperties #ams数据源 jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc.url1=jdbc:sqlserver://ip:2566;DatabaseName=h-ams jdbc.username1 = xxx jdbc.password1 = xxx #oa8

kay523393的博客 1388

MT9V034摄像头学习笔记(一)_mt9v034摄像头循迹代码(1)

函数名称:uint8_t SCB_RegRead(uint8_t Device,uint8_t Address,uint16_t *Data)* 函数名称:uint8_t SCB_RegWrite(uint8 Device,uint8 Address,uint16 Data)* 函数名称:uint8 SCCB_SendByte(uint8 Data)* 函数名称:uint8 SCCB_ReadByte(void)* 修改时间:2018年3月4日。* 修改时间:2018年3月4日。

2401_87555661的博客 907

微信小程序使用TCP通信

最终目的:在微信小程序内实现对局域网发起TCP通信实现步骤:建立TCP服务 + 小程序发起通信。

Big_YiFeng的博客 5612

ssm项目配置多个数据源(动态切换)

1.创建jdbc.properties #第一个数据源信息的 csjdbc.driver=oracle.jdbc.driver.OracleDriver csjdbc.url=jdbc:oracle:thin:@localhost:1521:orcl csjdbc.username=oracle csjdbc.password=oracle #最大连接数 csjdbc.maxTotal=30 #最大空闲连接数 csjdbc.maxIdle=10 #初始化连接数 csjdbc.initialSize=5

代码创造世界 1296

我看MFC的过去、现在和未来

首先说句题外话,虽然我现在的“主业”是Qt,但自己扪心自问,对MFC的熟悉程度要超过Qt。正是由于有了对MFC的熟悉,才能在使用Qt时,比较清醒的认清两者的优劣之处,在此暂且不提。 这个话题也可以说是由来已久,众说纷纭,今时我也谈谈自己的感悟。 一、对MFC的总体看法 首先看看云风在其《游戏之旅-我的编程感悟》一书中对MFC的看法: “我所见到的程序员中,很多把C+

qter_wd007的专栏 6115

Mybatis多数据源调用

环境:intellij15,jdk1.8,maven3   参考:http://www.jb51.net/article/104053.htm   1、  生成ssm项目,参见http://liguanshi.iteye.com/blog/2413023 2、  在jdbc.properties文件中添加数据库连接     #==========================...

liguanshi的博客 420

哨兵1号(Sentinel-1)雷达SAR数据预处理全流程:从下载到精确配准

本文详细介绍了哨兵1号(Sentinel-1)雷达SAR数据从下载到精确配准的全流程预处理方法。内容涵盖SLC与GRD数据选择、ASF平台下载技巧,并重点解析了使用SNAP软件进行几何校正、辐射定标及高精度配准的核心步骤,为InSAR形变监测等应用提供可靠的数据基础。

weixin_29208327的博客 477

Python爬虫实战:Boss直聘职位数据采集实战 - Playwright + 结构化解析完整方案(附CSV导出 + SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 2185

SSM+C3P0配置多个数据源

SSM+C3P0配置多个数据源 基于公司的ssm框架,通过配置文件配置可操作的多个数据库办法 一、在sping配置文件applicationCpontext.xml全文如下: 注意:1、数据源配置完成后,将事务管理中的内容改为动态数据源的id 2、在AOP切入的地方增加执行顺序 order="2" 3、动态DataSource配置中,需要配置继承AbstractRoutingDataSource...

wang_rk的博客 547

【QNX+Android虚拟化方案】129 - USB眼图参数配置

【QNX+Android虚拟化方案】129 - USB眼图参数配置

|~~~热爱生活、努力学习的小伙汁~~~| 821

SSM 多数据源配置(配置两个数据源)

SSM多数据源配置(配置两个数据源) 前言:SSM项目需要配置多数据源,以达到操作不同数据库的数据,网上看到大多是通过动态切换数据源的方式,但在项目中总会出现问题,这里通过配置两个spring-mybatis.xml(sqlSessionFactory,transactionManager),可以避免数据源切换问题。 具体思路如下: 1.ssm框架搭建略,系统项目结构如下: 注意点:两个数据源需要...

8770

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ssm框架双数据源配置

前置条件:大家在开发过程中大多都是连接一个数据库,进行数据操作,但是在同一个项目工程中,需要连接多个数据库,进行读写操作,这时候就需要配置切换动态数据源。。。,f废话少说,直接上代码 这里已ssm框架为例,当然项目所需的相关依赖jar都已经集成在框架中了。。。。 1、数据源连接参数 jdbc.properties #mysql 5.x jdbc.driver_1=com.mysql.jdb...

qq_15901351的博客 1868

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

浅谈ssm配置多个数据源

spring + mybatis 多数据源配置有两种解决方案 1、配置多个不同的数据源,使用一个sessionFactory,在业务逻辑使用的时候自动切换到不同的数据源, 有一个种是在拦截器里面根据不同的业务现切换到不同的datasource; 有的会在业务层根据业务来自动切换。 2、在spring项目中配置多个不同的数据源datasource,配置多个sqlSessionFact...

我是小慧慧 857

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java SSM项目中配置多个数据库切换数据源

1.先在database.properties 配置文件中添加两个数据库链接(这里是作者的文件名,根据自身项目而定) orcl.driver=oracle.jdbc.OracleDriver orcl.url=jdbc:oracle:thin:@localhost:1521:orcl orcl.user=scott orcl.pwd=123456 driver=com.mysql.jdbc.D...

weixin_44207540的博客 1240

ssm多个配置文件配置多个数据源

网上动态切换数据源不能满足我当前应用,来回切换会造成性能问题导致崩溃。而且在某个方法上用注解切换确实不是个好的办法。于是想到在最顶层代码考虑考虑。下面是我的配置: web.xml里初始化多个spring-mybatis.xml文件 <context-param> <!--全局范围内环境参数初始化--> <param-name>contextCon...

qq_40212198的博客 717

SSM框架下各个层的解释说明

持久层:DAO层(mapper) 业务层:Service层 表现层:Controller层(Handler层) View层 各层联系 SSM框架整合说明

lutianfei的专栏 10万+

ssm项目配置多个数据源

在项目中到一些问题,一些查询模块需要链接另一个数据库,这时,就可以配置两个数据源进行操作。 1.创建jdbc.properties jdbc.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8jdbc.driver = com.mysql.jdbc.Driverjdbc.usern...

weixin_30481087的博客 364

SSM链接多个数据源

SSM链接多个数据源 经过多日研究终于实验成功,以下是我在实验过程中的一些心得: 搭建简单的SSM框架并保证运行成功(自行百度) 配置多个数据源 编写切换数据源代码 *注意点 配置多个数据源 在配置数据源的xml下配置数据源` &amp;amp;lt;bean id = &amp;quot;dataSource_first&amp;quot; class=&amp;quot;com.mchange.v2.c3p0.ComboPool...

m0_38084895的博客 2076
上一篇: JAVA+163邮件发送配置
下一篇: tomcat集群+nginx反向代理实现负载均衡——入门
只会debug
博客等级 码龄9年 69粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值