当前位置: 首页 > news >正文

Spring boot 启用第二数据源

1. 数据源配置代码:

import com.alibaba.druid.pool.DruidDataSource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;import javax.annotation.PostConstruct;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;@Slf4j
@Configuration
@ConditionalOnProperty(prefix = "sms.secondary", name = "enabled", havingValue = "true", matchIfMissing = false) //配置是否启用
public class DsDbConfiguration {@Bean@ConfigurationProperties("spring.datasource.secondary.ds")public DruidDataSource jjxxDataSource() {DruidDataSource dataSource = (DruidDataSource) DataSourceBuilder.create().type(DruidDataSource.class).build();return dataSource;}@Beanpublic JdbcTemplate jjxxDataTemplate() {return new JdbcTemplate(jjxxDataSource());}@PostConstructpublic void testConnection() {try (Connection conn = jjxxDataSource().getConnection()) {DatabaseMetaData meta = conn.getMetaData();log.info("MySQL 第二数据源 连接成功! 服务版本: {}", meta.getDatabaseProductVersion());} catch (SQLException e) {log.error("MySQL  第二数据源 连接失败", e);log.error(e.getMessage(), e);}}
}

2.新建entity

import lombok.Data;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.Date;/***  Entity* @author * @time   */
@Data
@Entity
public class ThirdEntity{private static final long serialVersionUID = 1L;/*** 发案时间*/@Column(name = "fasj")private Date fasj;/*** 发案行政区划*/@Column(name = "faxzqh")private String faxzqh;/***报警电话*/@Column(name = "bjdh")private String bjdh;//省略其他字段}

3. 查询数据:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
public class JieJingDao {private final NamedParameterJdbcTemplate namedParameterJdbcTemplate;@Autowiredpublic JieJingDao(@Qualifier("jjxxDataTemplate") JdbcTemplate jdbcTemplate) {this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);}// 查询多个记录public List<ThirdEntity> queryEntityList(String start, String end) {String sql = "SELECT * FROM third_table WHERE  DATE_FORMAT(bjsj,'%Y-%m-%d %H:%i:%S') >=:start and DATE_FORMAT(bjsj,'%Y-%m-%d %H:%i:%S') <= :end";MapSqlParameterSource params = new MapSqlParameterSource();params.addValue("start", start);params.addValue("end", end);return namedParameterJdbcTemplate.query(sql, params, new BeanPropertyRowMapper<>(ThirdEntity.class));}}

4. 数据源配置信息:

spring.datasource.secondary.ds.url: jdbc:mysql://localhost:3306/thirdDatabase?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false&rewriteBatchedStatements=true
spring.datasource.secondary.ds.url.username: root
spring.datasource.secondary.ds.url.password: root

http://www.dtcms.com/a/357021.html

相关文章:

  • Java全栈工程师的实战面试:从基础到微服务架构
  • 【SOD】目标检测
  • 2025.8.29机械臂实战项目
  • 基于STM32单片机的智能温室控制声光报警系统设计
  • leetcode 461 汉明距离
  • 基于MSRDCN、FEAM与AMSFM的轴承故障诊断MATLAB实现
  • 【工具】开源大屏设计器 自用整理
  • golang接口详细解释
  • websocket的应用
  • 【Spring Cloud Alibaba】前置知识
  • 微信小程序调用蓝牙打印机教程(TSPL命令)
  • Android 14 PMS源码分析
  • Linux-搭建DNS服务器
  • 计算机三级嵌入式填空题——真题库(24)原题附答案速记
  • CMake xcode编译器属性设置技巧
  • JavaScript 数组核心操作实战:最值获取与排序实现(从基础到优化)
  • 线程安全及死锁问题
  • Linux之Docker虚拟化技术(二)
  • Python结构化模式匹配:解析器的革命性升级
  • 大模型 “轻量化” 之战:从千亿参数到端侧部署,AI 如何走进消费电子?
  • 【ACP】2025-最新-疑难题解析-11
  • 机器视觉opencv教程(二):二值化、自适应二值化
  • Partner 类开发:会议参与者可视化控件
  • 经典扫雷游戏实现:从零构建HTML5扫雷游戏
  • 科技大会用了煽情BGM
  • 【技术分享】系统崩溃后产生的CHK文件如何恢复?完整图文教程(附工具推荐)
  • 论文阅读:GOAT: GO to Any Thing
  • 智慧工地系统:基于Java微服务与信创国产化的建筑施工数字化管理平台
  • 开关电源设计“反馈回路”部分器件分析
  • Nginx的主要配置文件nginx.conf详细解读——及其不间断重启nginx服务等操作