多源数据库用例
# 一、多源配置(已配置)
spirng-mybiats.xml
config相关配置
# 二、多源数据库jbdc配置(拉取svn即可,已配置)
## c1 budget middle-database
jdbc.budget.driverClassName=com.mysql.jdbc.Driver
jdbc.budget.databaseUrl=jdbc:mysql://xxx:3306/c1_interface?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
jdbc.budget.username=xxx
jdbc.budget.password=xxx
# 三、多源数据库用例:
## 3.1.Dao层
概述:将dao类写到budgetDao目录下,自动实现多源数据配置到本目录下
```java
package com.epoch.customproject.cctv.budgetDao;
import com.epoch.customproject.cctv.entiy.ToolDO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: hecore
* @Date: 2020/2/5 16:12
* @Description:
*/
@Repository
public interface IToolDAO {
/**
* @param
* @return
*/
List<ToolDO> queryList();
}
```
## 3.2 实体类
```java
package com.epoch.customproject.cctv.entiy;
import lombok.Data;
/**
* @Author: hecore
* @Date: 2020/2/5 16:21
* @Description:
*/
@Data
public class ToolDO {
private Integer id;
private String link;
private String tool;
private String desct;
}
```
## 3.3 Xml配置
xml需要配置在 resources目录下 使用 com.epoch.**.budgetDao.** 来做配置,
区别于系统默认的com.epoch.**.dao.**
```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.epoch.customproject.cctv.budgetDao.IToolDAO">
<resultMap id="BaseResultMap" type="com.epoch.customproject.cctv.entiy.ToolDO">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="LINK" jdbcType="VARCHAR" property="link" />
<result column="TOOL" jdbcType="VARCHAR" property="tool" />
<result column="DESCT" jdbcType="VARCHAR" property="desct" />
</resultMap>
<sql id="Base_Column_List">
ID,LINK,TOOL,DESCT
</sql>
<select id="queryList" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from tool
</select>
</mapper>
```
## 3.4 调用样例
可利用Controller直接调用测试
```java
package com.epoch.customproject.cctv.controller;
import com.epoch.customproject.cctv.budgetDao.IToolDAO;
import com.epoch.customproject.cctv.entiy.ToolDO;
import com.epoch.customproject.cctv.service.quartz.CbsInfoServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author: hecore
* @Date: 2019/12/2 11:34
* @Description:
*/
@RestController
@RequestMapping("/cctv")
public class CctvController {
@Autowired
private IToolDAO toolDao;
@RequestMapping("/mul")
public String mul(){
List<ToolDO> list=toolDao.queryList();
System.out.println("获取多源数据成功"+list.size());
return "mul";
}
}
```
## 3.4 测试结果
```
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@442c5841] was not registered for synchronization because synchronization is not active
JDBC Connection [com.mysql.jdbc.JDBC4Connection@23adfae7] will not be managed by Spring
==> Preparing: select ID,LINK,TOOL,DESCT from tool
==> Parameters:
<== Columns: ID, LINK, TOOL, DESCT
<== Row: 1, http://www.baidu.com, 百度查询, null
<== Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@442c5841]
获取多源数据成功1
```