springmvc集成动态数据源
来源:互联网 发布:淘宝未按规定时间发货 编辑:程序博客网 时间:2024/06/07 05:32
springmvc的环境已经搭建好
首先配置数据源
这里采用oracle和mysql
<bean id="dataSourceorl" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property><property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"></property><property name="username" value="scott"></property><property name="password" value="tiger"></property></bean> <bean id="dataSourcemysql" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/test"></property><property name="username" value="root"></property><property name="password" value="root"></property></bean><bean class="com.asiainfo.mongo.dataSource.DynamicDataSource" id="dataSource"><property name="targetDataSources"><map key-type="java.lang.String"><entry value-ref="dataSourceorl" key="orcl"></entry><entry value-ref="dataSourcemysql" key="mysql"></entry></map></property><property name="defaultTargetDataSource" ref="dataSourceorl"></property></bean>编写动态数据源类,继承AbstractRoutingDataSource,这里是路由功能!
package com.asiainfo.mongo.dataSource;import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;public class DynamicDataSource extends AbstractRoutingDataSource {@Overrideprotected Object determineCurrentLookupKey() {return DbContextHolder.getDbType(); }}
编写静态类,设置数据源
package com.asiainfo.mongo.dataSource;public class DbContextHolder{private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();/** * 设置当前数据库。 * @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();}}
编写测试类
package com.asiainfo.mongo.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.asiainfo.mongo.dataSource.DbContextHolder;import com.asiainfo.mongo.pojo.User;import com.asiainfo.mongo.service.interfaces.IUserSV;@Controllerpublic class UserController {@Autowiredprivate IUserSV userSv;@RequestMapping(value="addUser",method=RequestMethod.GET) public void saveUserInfo(){DbContextHolder.setDbType("mysql");//设置数据源User user = new User();user.setUsername("曾孟良");user.setAge(25);userSv.insert(user); }}测试结果
0 0
- springmvc集成动态数据源
- springmvc动态切换数据源
- springmvc mysql 动态切换数据源
- spring和mybatis集成动态切换数据源配置实现
- spring和mybatis集成(二) 设置spring的动态数据源
- mybatis 集成spring 动态数据源,注解式切换
- SSM框架集成mysql读写分离,动态加载数据源
- SpringMVC 使用jndi 多个数据源且利用AbstractRoutingDataSource实现动态数据源切换
- 动态数据源
- 动态数据源
- 【Web】Java生成中文GIF动态验证码-集成SpringMVC
- Storm集成Kafka数据源
- springmvc+mybatis两个数据源
- springmvc配置数据源方式
- springMVC--配置数据源
- maven/mybatis-plus/spring动态数据源/springmvc/AOP/自定义参数注入/druid/dom4j/generator代码生成器
- Mybatis JNDI集成C3P0数据源
- spring-boot 集成Druid数据源
- JAVA的继承初始化
- hihocoder 1123 好配对 (二分)
- 解决win7的ie8浏览器以管理员身份运行,才不会崩溃的方法
- C#实现3D三角形 顶点转换以及投影
- ArcGIS10.1直连数据库
- springmvc集成动态数据源
- 使用curses函数库编辑屏幕
- java.lang.IllegalArgumentException: node to traverse cannot be null!
- 关于用户登录session
- isuker' blog
- RunLoop使用场景
- 使用结构体来优化shader的输入输出
- Mybatis学习记录(二)--Mybatis开发DAO方式
- HDU3068/Leetcode5 最长回文 (Manacher算法)