1.ssm(spring+springMVC+mybatis)环境搭建(略)

2.工程目录及多数据源涉及的文件

1).DataSourceContextHolder.java

package com.zjgt.datasource;import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;public class DataSourceContextHolder {private static final ThreadLocal<String> contextHolder =new ThreadLocal<>();public static void setDbType(String dbType){contextHolder.set(dbType);}public static String getDbType(){return ((String)contextHolder.get());}public static void clearDbType(){contextHolder.remove();}}

2).DynamicDataSource.java

package com.zjgt.datasource;import java.sql.SQLFeatureNotSupportedException;
import java.util.logging.Logger;import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;public class DynamicDataSource extends AbstractRoutingDataSource {@Overrideprotected Object determineCurrentLookupKey() {return DataSourceContextHolder.getDbType();}}

3).jdbc.properties

db1.driverClassName=com.mysql.jdbc.Driver
db1.url=jdbc:mysql://localhost:3306/zjzb_qc?useUnicode=true&amp;characterEncoding=UTF-8
db1.username=root
db1.password=123456db2.driverClassName=com.mysql.jdbc.Driver
db2.url=jdbc:mysql://localhost:3306/zjzb_qc2?useUnicode=true&amp;characterEncoding=UTF-8
db2.username=root
db2.password=123456db3.driverClassName=com.mysql.jdbc.Driver
db3.url=jdbc:mysql://localhost:3306/zjzb_qc3?useUnicode=true&amp;characterEncoding=UTF-8
db3.username=root
db3.password=123456

4).spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    http://www.springframework.org/schema/context    http://www.springframework.org/schema/context/spring-context-3.1.xsd    http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"><!-- 自动扫描 --><context:component-scan base-package="com.zjgt.service" /><!-- 引入配置文件 --><!-- <bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:jdbc.properties" /></bean> --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:jdbc.properties</value><value>classpath:redis.properties</value></list></property></bean><!-- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="${jdbc.driverClassName}" /><property name="jdbcUrl" value="${jdbc.url}" /><property name="user" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="minPoolSize" value="10" /><property name="maxPoolSize" value="100" /><property name="maxIdleTime" value="1800" /><property name="acquireIncrement" value="3" /><property name="maxStatements" value="1000" /><property name="initialPoolSize" value="10" /><property name="idleConnectionTestPeriod" value="60" /><property name="acquireRetryAttempts" value="30" /><property name="breakAfterAcquireFailure" value="true" /><property name="testConnectionOnCheckout" value="false" /></bean>--><!-- 多数据源配置 -->  <bean id ="zjzb_qc1" class= "org.apache.commons.dbcp.BasicDataSource" >  <property name ="driverClassName" value= "${db1.driverClassName}"></property >  <property name ="url" value="${db1.url}"></property>  <property name ="username" value="${db1.username}"></property>  <property name ="password" value="${db1.password}"></property>  </bean >  <bean id ="zjzb_qc2" class= "org.apache.commons.dbcp.BasicDataSource" >  <property name ="driverClassName" value= "${db2.driverClassName}"></property >  <property name ="url" value="${db2.url}"></property>  <property name ="username" value="${db2.username}"></property>  <property name ="password" value="${db2.password}"></property>  </bean >  <bean id ="zjzb_qc3" class="org.apache.commons.dbcp.BasicDataSource">  <property name ="driverClassName" value= "${db3.driverClassName}"></property >  <property name ="url" value="${db3.url}"></property>  <property name ="username" value="${db3.username}"></property>  <property name ="password" value="${db3.password}"></property>  </bean >  <bean id="dataSource" class="com.zjgt.datasource.DynamicDataSource"><property name ="targetDataSources">  <map key-type ="java.lang.String">  <entry value-ref ="zjzb_qc1" key="zjzb_qc1"></entry>  <entry value-ref ="zjzb_qc2" key="zjzb_qc2"></entry>  <entry value-ref ="zjzb_qc3" key="zjzb_qc3"></entry>  </map >  </property >  <property name ="defaultTargetDataSource" ref= "zjzb_qc1"></property >      <!-- 默认使用zjzb_qc1的数据源 -->  </bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations" value="classpath:com/zjgt/mapping/*.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.zjgt.dao" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 配置事务通知属性 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><!-- 定义事务传播属性 --><tx:attributes><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="edit*" propagation="REQUIRED" /><tx:method name="save*" propagation="REQUIRED" /><tx:method name="add*" propagation="REQUIRED" /><tx:method name="new*" propagation="REQUIRED" /><tx:method name="set*" propagation="REQUIRED" /><tx:method name="remove*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="change*" propagation="REQUIRED" /><tx:method name="get*" propagation="REQUIRED" /><tx:method name="find*" propagation="REQUIRED" /><tx:method name="load*" propagation="REQUIRED" /></tx:attributes></tx:advice><!-- 配置事务切面 --><aop:config><aop:pointcut id="txPointcut" expression="execution(* com.zjgt.service.*.*(..))" /><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" /></aop:config></beans>     <bean id="dataSource" class="com.zjgt.datasource.DynamicDataSource"><property name ="targetDataSources">  <map key-type ="java.lang.String">  <entry value-ref ="zjzb_qc1" key="zjzb_qc1"></entry>  <entry value-ref ="zjzb_qc2" key="zjzb_qc2"></entry>  <entry value-ref ="zjzb_qc3" key="zjzb_qc3"></entry>  </map >  </property >  <property name ="defaultTargetDataSource" ref= "zjzb_qc1"></property >      <!-- 默认使用zjzb_qc1的数据源 -->  </bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations" value="classpath:com/zjgt/mapping/*.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.zjgt.dao" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 配置事务通知属性 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><!-- 定义事务传播属性 --><tx:attributes><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="edit*" propagation="REQUIRED" /><tx:method name="save*" propagation="REQUIRED" /><tx:method name="add*" propagation="REQUIRED" /><tx:method name="new*" propagation="REQUIRED" /><tx:method name="set*" propagation="REQUIRED" /><tx:method name="remove*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="change*" propagation="REQUIRED" /><tx:method name="get*" propagation="REQUIRED" /><tx:method name="find*" propagation="REQUIRED" /><tx:method name="load*" propagation="REQUIRED" /></tx:attributes></tx:advice><!-- 配置事务切面 --><aop:config><aop:pointcut id="txPointcut" expression="execution(* com.zjgt.service.*.*(..))" /><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" /></aop:config></beans>  

3.在web.xml引用spring-mybatis.xml即可

4.在controller里面配置数据源即可(由于service层配置了事务。一旦调用进入到事务内部,再切换数据源则无效。故放在controller里面)

代码示例如下:

@ResponseBody@RequestMapping(value = "_list", produces = "text/html;charset=UTF-8")public String userLists(HttpServletRequest request, HttpServletResponse response) throws JsonProcessingException {//切换数据源到zjzb_qc2DataSourceContextHolder.setDbType("zjzb_qc2");String userName = request.getParameter("userName");String departmentName = request.getParameter("departmentName");String pageSize = request.getParameter("pageSize");String pageCurrent = request.getParameter("pageCurrent");int size = Integer.parseInt(pageSize);int currentPage = Integer.parseInt(pageCurrent);int start = size * (currentPage - 1);int totalSize = userService.getUserListSize(userName, departmentName);ArrayList<User> userList = userService.getUserList(userName, departmentName, start, size);if (userList.size() > 0) {return ToolUtil.listToJson(userList, size, currentPage, totalSize, "yyyy-MM-dd");}return null;}

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.cesat</groupId><artifactId>zjzb_qc</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>zjzb_qc Maven Webapp</name><url>http://maven.apache.org</url><properties><!-- spring版本号 --><spring.version>4.3.8.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.2.6</mybatis.version><!-- log4j日志文件管理包版本 --><slf4j.version>1.7.25</slf4j.version><log4j.version>1.2.17</log4j.version><activiti.version>5.22.0</activiti.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-all</artifactId><version>1.3</version><scope>test</scope></dependency><!-- shiro start --><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-web</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-ehcache</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.2.3</version></dependency><!-- shiro end --><!-- spring核心包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!-- mybatis核心包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- mybatis/spring包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency><!-- 导入java ee jar 包 --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><!-- c3p0 --><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>com.jolbox</groupId><artifactId>bonecp</artifactId><version>0.8.0.RELEASE</version></dependency><!-- 导入Mysql数据库链接jar包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency><!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.2.2</version></dependency><!-- JSTL标签类 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- 日志文件管理包 --><!-- log start --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><!-- 格式化对象,方便输出日志 --><!-- <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- log end --><!-- 映入JSON --><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency><!-- 上传组件包 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.9</version></dependency><!-- 添加servlet api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- json转换工具 --><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20170516</version></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.9</version></dependency><!-- mybatis 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.1.6</version></dependency><!-- jsp 的date 转为bean 的date --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.6</version></dependency><!-- activiti5工作流 --><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-converter</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-layout</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-diagram-rest</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-model</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-engine</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-image-generator</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-json-converter</artifactId><version>${activiti.version}</version><exclusions><exclusion><artifactId>commons-collections</artifactId><groupId>commons-collections</groupId></exclusion></exclusions></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-process-validation</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring</artifactId><version>${activiti.version}</version><exclusions><exclusion><artifactId>commons-dbcp</artifactId><groupId>commons-dbcp</groupId></exclusion></exclusions></dependency><dependency><groupId>batik</groupId><artifactId>batik-anim</artifactId><version>1.7</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-awt-util --><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-awt-util</artifactId><version>1.7</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-bridge</artifactId><version>1.7</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-codec</artifactId><version>1.7</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-css</artifactId><version>1.7</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-dom</artifactId><version>1.7</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-ext</artifactId><version>1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-gvt</artifactId><version>1.7</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-js</artifactId><version>1.7</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-parser --><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-parser</artifactId><version>1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-script</artifactId><version>1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-svg-dom</artifactId><version>1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-svggen</artifactId><version>1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-transcoder</artifactId><version>1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-util</artifactId><version>1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-xml</artifactId><version>1.7</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.3.2</version></dependency><dependency><groupId>xml-apis</groupId><artifactId>xml-apis</artifactId><version>1.3.04</version></dependency><dependency><groupId>xml-apis</groupId><artifactId>xml-apis-ext</artifactId><version>1.3.04</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>xmlgraphics-commons</artifactId><version>1.2</version></dependency><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><!-- activemq --><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>5.7.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>5.7.0</version></dependency><!-- xbean 如<amq:connectionFactory /> --><dependency><groupId>org.apache.xbean</groupId><artifactId>xbean-spring</artifactId><version>3.16</version></dependency><!-- websocket --><dependency><groupId>org.springframework</groupId><artifactId>spring-websocket</artifactId><version>${spring.version}</version></dependency><!-- 除非使用STOMP协议,否则不需要依赖spring-messaging --><dependency><groupId>org.springframework</groupId><artifactId>spring-messaging</artifactId><version>${spring.version}</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.0</version></dependency><!-- 导出pdf start --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency><!-- 输出中文 --><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><!-- 设置pdf密码 --><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.54</version></dependency><!-- 导出pdf end --><!-- james邮件服务器 --><dependency><groupId>org.apache.james</groupId><artifactId>james-server-data-api</artifactId><version>3.0.0</version></dependency><!-- redis的数据 --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.8.8.RELEASE</version></dependency><!-- redis客户端jar --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency><!-- Ehcache实现,用于参考 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-ehcache</artifactId><version>1.0.0</version></dependency><!-- aop切面 start --><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.1</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4.0.6.RELEASE</version></dependency><!-- aop切面 end --><!--ehcache缓存start --><dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache</artifactId><version>2.10.3</version></dependency><!--ehcache缓存 end --><!-- aliyun test start --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.4.6</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-ecs</artifactId><version>4.17.6</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.2.1</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.2.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><!-- aliyun test end --></dependencies><build><finalName>zjzb_qc</finalName><plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuration><verbose>true</verbose><overwrite>true</overwrite></configuration></plugin></plugins><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*</include></includes></resource></resources></build></project>

mapper示例:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zjgt.dao.RoleDao"><resultMap id="BaseResultMap" type="com.zjgt.bean.Role"><id column="ID" property="id" jdbcType="INTEGER" /><result column="Name" property="name" jdbcType="VARCHAR" /><result column="CreateTime" property="createtime" jdbcType="TIMESTAMP" /><result column="Description" property="description" jdbcType="VARCHAR" /><result column="DepartmentID" property="departmentid" jdbcType="INTEGER" /><result column="Locked" property="locked" jdbcType="BIT" /><result column="OrderBy" property="orderby" jdbcType="INTEGER" /><result column="ParentID" property="parentid" jdbcType="INTEGER" /><result column="Level" property="level" jdbcType="INTEGER" /></resultMap><sql id="Base_Column_List">ID, Name, CreateTime, Description, DepartmentID, Locked, OrderBy,ParentID, Level</sql><select id="selectByPrimaryKey" resultMap="BaseResultMap"parameterType="java.lang.Integer">select<include refid="Base_Column_List" />from sys_rolewhere ID = #{id,jdbcType=INTEGER}</select><select id="getRoleByID" resultMap="BaseResultMap"parameterType="java.lang.Integer">select<include refid="Base_Column_List" />from sys_rolewhere ID = #{id,jdbcType=INTEGER}</select><select id="getAllRoles" resultMap="BaseResultMap"parameterType="java.lang.Integer">select<include refid="Base_Column_List" />from sys_roleorder by OrderBy asc</select><select id="getRolesByParentID" resultMap="BaseResultMap"parameterType="java.lang.Integer">select<include refid="Base_Column_List" />from sys_role where ParentID=#{id}order by OrderBy asc</select><select id="getRolesByDepartmentID" resultMap="BaseResultMap"parameterType="java.lang.Integer">select<include refid="Base_Column_List" />from sys_role where DepartmentID=#{id}order by OrderBy asc</select><delete id="deleteRoleByID" parameterType="java.lang.Integer">delete from sys_rolewhere ID = #{id,jdbcType=INTEGER}</delete><delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">delete from sys_rolewhere ID = #{id,jdbcType=INTEGER}</delete><insert id="insert" parameterType="com.zjgt.bean.Role">insert into sys_role (ID, Name, CreateTime,Description, DepartmentID, Locked,OrderBy, ParentID, Level)values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},#{createtime,jdbcType=TIMESTAMP},#{description,jdbcType=VARCHAR}, #{departmentid,jdbcType=INTEGER}, #{locked,jdbcType=BIT},#{orderby,jdbcType=INTEGER}, #{parentid,jdbcType=INTEGER},#{level,jdbcType=INTEGER})</insert><insert id="insertSelective" parameterType="com.zjgt.bean.Role">insert into sys_role<trim prefix="(" suffix=")" suffixOverrides=","><if test="id != null">ID,</if><if test="name != null">Name,</if><if test="createtime != null">CreateTime,</if><if test="description != null">Description,</if><if test="departmentid != null">DepartmentID,</if><if test="locked != null">Locked,</if><if test="orderby != null">OrderBy,</if><if test="parentid != null">ParentID,</if><if test="level != null">Level,</if></trim><trim prefix="values (" suffix=")" suffixOverrides=","><if test="id != null">#{id,jdbcType=INTEGER},</if><if test="name != null">#{name,jdbcType=VARCHAR},</if><if test="createtime != null">#{createtime,jdbcType=TIMESTAMP},</if><if test="description != null">#{description,jdbcType=VARCHAR},</if><if test="departmentid != null">#{departmentid,jdbcType=INTEGER},</if><if test="locked != null">#{locked,jdbcType=BIT},</if><if test="orderby != null">#{orderby,jdbcType=INTEGER},</if><if test="parentid != null">#{parentid,jdbcType=INTEGER},</if><if test="level != null">#{level,jdbcType=INTEGER},</if></trim></insert><insert id="insertRole" parameterType="com.zjgt.bean.Role"useGeneratedKeys="true" keyProperty="id">insert into sys_role<trim prefix="(" suffix=")" suffixOverrides=","><if test="name != null">Name,</if><if test="createtime != null">CreateTime,</if><if test="description != null">Description,</if><if test="departmentid != null">DepartmentID,</if><if test="locked != null">Locked,</if><if test="orderby != null">OrderBy,</if><if test="parentid != null">ParentID,</if><if test="level != null">Level,</if></trim><trim prefix="values (" suffix=")" suffixOverrides=","><if test="name != null">#{name,jdbcType=VARCHAR},</if><if test="createtime != null">#{createtime,jdbcType=TIMESTAMP},</if><if test="description != null">#{description,jdbcType=VARCHAR},</if><if test="departmentid != null">#{departmentid,jdbcType=INTEGER},</if><if test="locked != null">#{locked,jdbcType=BIT},</if><if test="orderby != null">#{orderby,jdbcType=INTEGER},</if><if test="parentid != null">#{parentid,jdbcType=INTEGER},</if><if test="level != null">#{level,jdbcType=INTEGER},</if></trim></insert><update id="updateRole" parameterType="com.zjgt.bean.Role">update sys_role<set><if test="name != null">Name = #{name,jdbcType=VARCHAR},</if><if test="createtime != null">CreateTime = #{createtime,jdbcType=TIMESTAMP},</if><if test="description != null">Description = #{description,jdbcType=VARCHAR},</if><if test="departmentid != null">DepartmentID = #{departmentid,jdbcType=INTEGER},</if><if test="locked != null">Locked = #{locked,jdbcType=BIT},</if><if test="orderby != null">OrderBy = #{orderby,jdbcType=INTEGER},</if><if test="parentid != null">ParentID = #{parentid,jdbcType=INTEGER},</if><if test="level != null">Level = #{level,jdbcType=INTEGER},</if></set>where ID = #{id,jdbcType=INTEGER}</update><update id="updateByPrimaryKey" parameterType="com.zjgt.bean.Role">update sys_roleset Name = #{name,jdbcType=VARCHAR},CreateTime = #{createtime,jdbcType=TIMESTAMP},Description = #{description,jdbcType=VARCHAR},DepartmentID = #{departmentid,jdbcType=INTEGER},Locked = #{locked,jdbcType=BIT},OrderBy = #{orderby,jdbcType=INTEGER},ParentID = #{parentid,jdbcType=INTEGER},Level = #{level,jdbcType=INTEGER}where ID = #{id,jdbcType=INTEGER}</update><select id="getPermissionByRoleID" resultType="com.zjgt.bean.Permission"parameterType="java.lang.Integer">selectp.ID id,p.Name name,p.Type type,p.Url url,p.ParentID parentid,p.Level level,p.Permission permissionfrom sys_role_permission as rpleft join  sys_permission as pon rp.PermissionID=p.IDwhere rp.RoleID = #{id,jdbcType=INTEGER}</select>
</mapper>

springMVC mybatis 多数据源配置相关推荐

  1. springmvc+mybatis多数据源配置,AOP注解动态切换数据源

    springmvc与springboot没多大区别,springboot一个jar包配置几乎包含了所有springmvc,也不需要繁琐的xml配置,springmvc需要配置多种jar包,需要繁琐的x ...

  2. spring mybatis 多数据源配置 jeesite 多数据源配置

    spring mybatis 多数据源配置 jeesite 多数据源配置 一.情景描述 在系统数据达到一定的访问量时,遇到单个数据库瓶颈,所以需要扩展数据库,启用第二个数据源资源,项目架构变成 一个服 ...

  3. MyBatis多数据源配置(读写分离)

    MyBatis多数据源配置(读写分离) 首先说明,本文的配置使用的最直接的方式,实际用起来可能会很麻烦. 实际应用中可能存在多种结合的情况,你可以理解本文的含义,不要死板的使用. 多数据源的可能情况 ...

  4. SpringBoot2.1.9 Mybatis多数据源配置

    一.配置文件 目录 application.yaml spring:application:name: multi-datasourceprofiles:active: devdatasource:t ...

  5. Spring集成Mybatis多数据源配置

    既然在整理Mybatis那就把经常用的这个多数据源的笔记也整一下吧. Spring集成Mybatis在之前就已经提到了.Spring集成Mybatis 集成Mybatis多数据源有两种方式: 1.创建 ...

  6. Spring+SpringMVC+Mybatis 多数据源整合

    原文地址:http://blog.csdn.net/q908555281/article/details/50316137 ----------------------------------- 此篇 ...

  7. Spring Cloud + Mybatis 多数据源配置

    最近接手了一个Spring Cloud + Mybatis架构的项目,本身用的是sqlserver的数据库,因为业务需要,需要连接另一个项目的mysql数据库,于是就想到了多数据源配置,费了些时间,终 ...

  8. SpringBoot mybatis多数据源配置,记录下我磕磕碰碰的三个月找工作经历

    */ public class DynamicDataSource extends AbstractRoutingDataSource { /** 取得当前使用哪个数据源 @return */ @Ov ...

  9. springboot+mybatis多数据源配置

    目录 1.前言 2.多数据源配置 2.1  AbstractRoutingDataSource 2.2.首先maven依赖 2.3 数据源配置 2.4 mybatis配置 2.5 设置数据源的路由ke ...

最新文章

  1. 记住,永远不要在MySQL中使用“utf8”-转
  2. 【计算机系统设计】学习笔记(1)03,04
  3. [html] HTML5的Geolocation不允许定位后如何于次让它弹起授权定位?
  4. 【保存】maven的pom.xml标签的xsi:schemaLocation处报错
  5. JAVA-1011. A+B和C (15)
  6. 2019 年诺贝尔物理学奖揭晓!三得主让宇宙“彻底改观”!
  7. AD6.8_mcu123 分享地址
  8. java redis 队列 抢购_redis使用watch秒杀抢购实现思路
  9. 金蝶KIS 14.1 专业版安装教程
  10. 计算机二级vfp考试大纲,全国计算机等级考试二级VFP考试大纲.doc
  11. kindle型号查询
  12. R 回归 虚拟变量na_R语言 | 回归分析(一)
  13. 【笑话】程序员和青蛙公主
  14. LoadBalancer 负载均衡
  15. 有趣的设计模式——从一杯奶茶品味装饰模式
  16. 【hdu2298】【三分】Toxophily
  17. 《HikariCP数据库连接池实战》学习笔记(二):获取连接原理
  18. Python读取和操作Excel(.xlsx)文件
  19. 使用Pyqt5制作GUI界面,并使用pyinstaller打包成exe文件
  20. [幻灯]9.2-9.5日晚-剔除“伪创新”和“无领域”的领域驱动设计-网课

热门文章

  1. 割圆术c语言程序设计,组图:千古绝技 中国古代数学家的割圆术
  2. CUBEMX+FreeRTOS使用ArmComplier6(AC6)编译器的设置方法
  3. 阿里云Centos7修改22默认端口
  4. 厦门大学计算机科学学院,厦门大学张俊松
  5. keras之父《python深度学习》笔记 第六章
  6. 同时删除多个 PDF 中间几页
  7. C语言PAT刷题 - 1020 月饼
  8. 用C语言来实现扫雷小游戏
  9. 青少年编程 中国电子学会scratch等级考试二级历年真题解析【持续更新 已更新至2023年3月】
  10. 系统架构演变和远程调用