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

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.xdnf.cn/news/19080.html

相关文章:

  • 【Day 40】Shell脚本-条件判断
  • linux中.tar 解压命令
  • 【系列05】端侧AI:构建与部署高效的本地化AI模型 第4章:模型量化(Quantization)
  • 嵌入式Linux驱动开发 - DTS LED驱动
  • 管家婆辉煌ERP中如何查询畅销商品
  • java8浮点型算平均值
  • 37 HTB Remote 机器 - 容易
  • 字典解密助手ArchiveHelperWpfv1.0.12详细使用说明书
  • Apisix工作流程
  • 界面钝化新策略:华南理工实现泡沫铜/Bi-In相变材料热循环性能显著增强
  • 直流电机驱动与TB6612
  • Excel数组学习笔记
  • 【开题答辩全过程】以 基于JSP的养生网站系统为例,包含答辩的问题和答案
  • 本地部署商业服务器 Glassfish 并实现外部访问
  • Rust 安装与运行指南
  • Jetson进行旋转目标检测推理实现大疆无人机飞行控制
  • Git 9 ,.git/index.lock 文件冲突问题( .git/index.lock‘: File exists. )
  • 卷积神经网络为什么要填充(Padding)
  • 基于无人机的风电叶片全自动智能巡检:高精度停角估计与细节优先曝光调控技术
  • 在做题中学习(89):合并区间
  • 如何去除edge浏览器的灰色边框
  • idea2023.3遇到了Lombok失效问题,注释optional和annotationProcessorPaths即可恢复正常
  • Redis与MySQL数据不一致问题
  • 【MYSQL | 基础篇 多表查询】
  • FunctionAI 图像生成:简化从灵感到 API 调用的每一步
  • Kingbase-Mysql兼容模式下LOAD DATA INFILE语法再体验
  • idea控制台从properties中取值然后打印出现控制台乱码问题
  • (论文速读)MAPTNet——少样本表面缺陷分割方法
  • Java图形图像处理【基础篇】【二】
  • 前端-什么是Vue