spring,mybatis配置多数据源
来源:互联网 发布:百度输入法linux 编辑:程序博客网 时间:2024/06/10 07:58
双数据配置,一个数据库的操作放在文件夹"one"下面。另一个数据库的操作放到文件夹"two"下面
config.properties:参数配置文件
# Database Connection Poolproxool.alias=DBPoolproxool.maximumActiveTime=900000proxool.maximumConnectionCount=300proxool.minimumConnectionCount=5proxool.houseKeepingSleepTime=90000proxool.simultaneousBuildThrottle=10proxool.prototypeCount=5proxool.testBeforeUse=trueproxool.houseKeepingTestSql=select now()proxool.trace=true# Main Databasejdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/one?useUnicode=true&characterEncoding=UTF-8jdbc.userName=rootjdbc.password=roototherjdbc.driverClassName=com.mysql.jdbc.Driverotherjdbc.url=jdbc:mysql://127.0.0.1:3306/two?useUnicode=true&characterEncoding=UTF-8otherjdbc.userName=roototherjdbc.password=root
DataSourceConfigOne.java: 数据源配置文件1
package com.love.mvc.config;import javax.sql.DataSource;import org.apache.ibatis.session.SqlSessionFactory;import org.logicalcobwebs.proxool.ProxoolDataSource;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;/** * 多数据源配置 * @author Administrator * */@Configurationpublic class DataSourceConfigOne {@Value("${jdbc.driverClassName}")private String driverClassName;@Value("${jdbc.url}")private String url;@Value("${jdbc.userName}")private String username;@Value("${jdbc.password}")private String password;@Bean(name = "dataSourceOne")public DataSource DataSourceOne(){ProxoolDataSource ds = new ProxoolDataSource();ds.setDriver(driverClassName);ds.setDriverUrl(url);ds.setUser(username);ds.setPassword(password);ds.setAlias("alias1"); //--可以配置其它return ds;}@Bean(name = "oneSqlSessionFactory")public SqlSessionFactory oneSqlSessionFactory(@Qualifier("dataSourceOne") DataSource dataSource) throws Exception{SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);Resource res=new ClassPathResource("mybatis-config.xml"); bean.setConfigLocation(res);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/one/*.xml"));//Mybatis使用Log4j记录日志/*org.apache.ibatis.session.Configuration myBatisConfig = new org.apache.ibatis.session.Configuration();myBatisConfig.setLogImpl(Log4jImpl.class);bean.setConfiguration(myBatisConfig);*/ return bean.getObject();}@Bean(name = "oneTransactionManager")public DataSourceTransactionManager oneTransactionManager(@Qualifier("dataSourceOne") DataSource dataSource){return new DataSourceTransactionManager(dataSource);}@Bean(name="oneSqlSessionTemplate")public SqlSessionTemplate oneSqlSessionTemplate(@Qualifier("oneSqlSessionFactory") SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}}
DataSourceConfigTwo.java:数据源配置文件2
package com.love.mvc.config;import javax.sql.DataSource;import org.apache.ibatis.session.SqlSessionFactory;import org.logicalcobwebs.proxool.ProxoolDataSource;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;@Configurationpublic class DataSourceConfigTwo {@Value("${otherjdbc.driverClassName}")private String driverClassName;@Value("${otherjdbc.url}")private String url;@Value("${otherjdbc.userName}")private String username;@Value("${otherjdbc.password}")private String password;@Bean(name = "dataSourceTwo")public DataSource DataSourceTwo(){ProxoolDataSource ds = new ProxoolDataSource();ds.setDriver(driverClassName);ds.setDriverUrl(url);ds.setUser(username);ds.setPassword(password);ds.setAlias("alias2"); //--可以配置其它return ds;}@Bean(name = "twoSqlSessionFactory")public SqlSessionFactory twoSqlSessionFactory(@Qualifier("dataSourceTwo") DataSource dataSource) throws Exception{SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);Resource res=new ClassPathResource("mybatis-config.xml"); bean.setConfigLocation(res);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/two/*.xml"));//Mybatis使用Log4j记录日志/*org.apache.ibatis.session.Configuration myBatisConfig = new org.apache.ibatis.session.Configuration();myBatisConfig.setLogImpl(Log4jImpl.class);bean.setConfiguration(myBatisConfig);*/ return bean.getObject();}@Bean(name = "twoTransactionManager")public DataSourceTransactionManager twoTransactionManager(@Qualifier("dataSourceTwo") DataSource dataSource){return new DataSourceTransactionManager(dataSource);}@Bean(name="twoSqlSessionTemplate")public SqlSessionTemplate twoSqlSessionTemplate(@Qualifier("twoSqlSessionFactory") SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}}
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置全局属性 --> <settings> <!-- 使用jdbc的getGeneratekeys获取自增主键值 --> <setting name="useGeneratedKeys" value="true"/> <!-- 使用列别名替换别名,默认true --> <setting name="useColumnLabel" value="true"/> <!-- 开启驼峰命名转换 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
spring-mybatis.xml:mybatis配置文件,这里java文件,其实和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:tx="http://www.springframework.org/schema/tx"xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd"default-autowire="byName" default-lazy-init="false"> <!-- 配置文件地址 --><context:property-placeholder location="classpath:config.properties"/><mybatis:scan base-package="com.love.mvc.dao.one" factory-ref="oneSqlSessionFactory"/><mybatis:scan base-package="com.love.mvc.dao.two" factory-ref="twoSqlSessionFactory"/><!-- 事务 --><tx:annotation-driven transaction-manager="oneTransactionManager"/><!-- 事务 --><tx:annotation-driven transaction-manager="twoTransactionManager"/></beans>
IStudentDao.java
package com.love.mvc.dao.one;import java.util.Map;import org.apache.ibatis.annotations.Mapper;@Mapperpublic interface IStudentDao {/** * 根据用户名查询 * @param username * @return */public Map<String,Object> query(Integer id);}
IStudentDao.xml student表在数据库one中
<?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.love.mvc.dao.one.IStudentDao"><select id="query" resultType="map">select * from student where id=#{id}</select></mapper>
IClassDao.java class表在数据库two中
package com.love.mvc.dao.two;import java.util.Map;import org.apache.ibatis.annotations.Mapper;@Mapperpublic interface IClassDao {/** * 根据用户名查询 * @param username * @return */public Map<String,Object> query(Integer id);}
IClassDao.xml
<?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.love.mvc.dao.two.IClassDao"><select id="query" resultType="map">select * from class where id=#{id}</select></mapper>
@Controller@RequestMapping("/main")public class MainController {@Autowiredprivate IStudentDao studentDao;@Autowiredprivate IClassDao classDao;@RequestMapping("/index")public ModelAndView index(){ModelAndView view = new ModelAndView();view.setViewName("login");Map<String,Object> student = studentDao.query(1);Map<String,Object> classs = classDao.query(1);return view;}}
附件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.love.mvc</groupId> <artifactId>myweb</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <commons-lang.version>2.6</commons-lang.version> <slf4j.version>1.7.6</slf4j.version> <spring.version>4.2.4.RELEASE</spring.version><!--Spring版本号--> <jackson.version>2.5.4</jackson.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${spring.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- mvc --> <dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency><!-- 日志 --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>${commons-lang.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <!-- mybatis --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.4</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!-- 数据库连接池 --><!-- <dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>2.5.1</version></dependency> --><dependency> <groupId>com.cloudhopper.proxool</groupId> <artifactId>proxool</artifactId> <version>0.9.1</version></dependency><!-- framemarker --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.23</version></dependency> </dependencies> <build> <finalName>myweb</finalName> </build></project>
阅读全文
0 0
- spring + mybatis多数据源配置
- spring MVC+MyBatis 多数据源配置
- Spring下mybatis 多数据源配置
- Spring下mybatis配置多数据源
- Spring+Mybatis 多数据源配置
- Spring+MyBatis多数据源配置实现
- spring+mybatis多数据源配置
- Spring+MyBatis多数据源配置实现
- Spring+Mybatis配置多数据源
- Spring下mybatis多数据源配置
- spring+mybatis 多数据源配置
- Spring+MyBatis多数据源配置实现
- spring+mybatis多数据源的配置
- spring-mybatis多数据源配置出错
- spring,mybatis,druid,多数据源配置
- spring+mybatis配置多数据源
- spring+springMVC+mybatis 多数据源配置
- Spring MVC +MyBatis 多数据源配置
- IntelliJ IDEA For Mac 快捷键
- c#通用配置文件读写类与格式转换(xml,ini,json)
- 【DL--14】Keras案例学习-- CNN做手写字符分类(mnist_cnn )
- centos安装redis
- gulp菜鸟级零基础详细教程,嘴对嘴教会你怎么使用gulp
- spring,mybatis配置多数据源
- iOS官方demo下载网站
- nginx配置
- 微信小程序支付(Java服务端)
- 增强学习(一)——马尔科夫决策过程(MDP)
- Ubuntu设置远程链接的方法
- C++ vector<>
- 本地网站接入外网自动填写用户名密码并登陆
- keras学习之五:Keras中的神经网络层组件简介