96SEO 2026-02-19 11:53 15
前言一、pom文件二、yamlDataSourceConfigServiceMapper.xml测试总结

Mybatis-plus管理多数据源数据库为mysql和TDengine。
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.28/version
scoperuntime/scope--/dependency!--connection
pool--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.8/version/dependencydependencygroupIdcom.taosdata.jdbc/groupIdartifactIdtaos-jdbcdriver/artifactIdversion3.2.7/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.7/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion3.5.1/version/dependency二、yaml
jdbc:mysql://127.0.0.1:3306/wh_vehicles?useUnicodetruecharacterEncodingUTF-8useSSLfalseautoReconnecttruefailOverReadOnlyfalseserverTimezoneAsia/Shanghai
严格按照路由规则从主库读取数据如果主库不可用则从从库读取数据。
datasource:master:driver-class-name:
jdbc:mysql://127.0.0.1:3306/wh_vehicles?useUnicodetruecharacterEncodingUTF-8useSSLfalseautoReconnecttruefailOverReadOnlyfalseserverTimezoneAsia/Shanghaiusername:
com.taosdata.jdbc.rs.RestfulDriverurl:
jdbc:TAOS-RS://localhost:6041?timezoneUTC-8charsetutf-8useSSLfalseuserrootpassword123#
com.alibaba.druid.pool.DruidDataSourcedruid:initial-size:
60000time-between-eviction-runs-millis:
60000min-evictable-idle-time-millis:
truemax-pool-prepared-statement-per-connection-size:
classpath:mapper/*.xmltype-aliases-package:
org.zqh.jt808.server.modelDataSourceConfig
org.zqh.jt808.server.config;import
org.apache.ibatis.session.SqlSessionFactory;
org.mybatis.spring.SqlSessionFactoryBean;
org.mybatis.spring.SqlSessionTemplate;
org.springframework.beans.factory.annotation.Qualifier;
org.springframework.boot.context.properties.ConfigurationProperties;
org.springframework.boot.jdbc.DataSourceBuilder;
org.springframework.context.annotation.Bean;
org.springframework.context.annotation.Configuration;
org.springframework.context.annotation.Primary;
org.springframework.core.io.support.PathMatchingResourcePatternResolver;import
javax.sql.DataSource;Configuration
masterDataSource)ConfigurationProperties(prefix
spring.dynamic.datasource.master)public
DataSourceBuilder.create().build();}//
slaveDataSource)ConfigurationProperties(prefix
spring.dynamic.datasource.slave)public
DataSourceBuilder.create().build();}//
SqlSessionFactoryPrimaryBean(name
masterSqlSessionFactory(Qualifier(masterDataSource)
SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);//
classpath*:/mapper/*.xml;PathMatchingResourcePatternResolver
PathMatchingResourcePatternResolver();sqlSessionFactoryBean.setMapperLocations(resolver.getResources(locationPattern));return
sqlSessionFactoryBean.getObject();}//
slaveSqlSessionFactory(Qualifier(slaveDataSource)
SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);//
classpath*:/mapper/*.xml;PathMatchingResourcePatternResolver
PathMatchingResourcePatternResolver();sqlSessionFactoryBean.setMapperLocations(resolver.getResources(locationPattern));return
sqlSessionFactoryBean.getObject();}
org.zqh.jt808.server.service;import
com.baomidou.dynamic.datasource.annotation.DS;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.stereotype.Service;
org.zqh.jt808.server.mapper.TDMapper;
org.zqh.jt808.server.model.LocationInfo;import
{tdMapper.saveLocation(locationInfo);}/***
tdMapper.queryLocationAll();}/***
tdMapper.queryLocationHistory(deviceId,startTime,endTime);}/***
tdMapper.queryLocations(deviceIds);}else
tdMapper.queryLocation(deviceId);}
3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
namespaceorg.zqh.jt808.server.mapper.TDMapperinsert
wh_special_equipment.device_locations
resultTypeorg.zqh.jt808.server.model.LocationInfo![CDATA[select
wh_special_equipment.device_locations
resultTypeorg.zqh.jt808.server.model.LocationInfoselect
wh_special_equipment.device_locationswhere
resultTypeorg.zqh.jt808.server.model.LocationInfoselect
wh_special_equipment.device_locationsgroup
resultTypecn.hutool.json.JSONObjectselect
last_row(deviceId),deviceId,ts,longitude,latitude,height,speed,directionfrom
wh_special_equipment.device_locationswhere
org.zqh.jt808.server.test;import
org.springframework.boot.test.context.SpringBootTest;
org.zqh.jt808.server.service.ApiService;
org.zqh.jt808.server.service.TDService;import
{System.out.println(apiService.queryTD());}Testpublic
{log.debug({},apiService.queryMySql());}/***
{log.debug({},tdService.queryLocationAll());}/***
ArrayList();list.add(00000000000040904004);log.debug({},tdService.queryLocations(list));}/***
{log.info({},tdService.queryLocation(00000000000040904004));}/***
ArrayList();list.add(00000000000040904004);MapString,
HashMap();map.put(deviceIds,list);String
System.currentTimeMillis();long
System.currentTimeMillis();log.debug({},tdService.queryLocationHistory(deviceId,startTime,endTime));}
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback