资讯详情

SpringBatch读取mysql数据:TaoToken统一Key接入与settings.json配置骨架

📅 2026/9/27 14:04:12 | 华诺云谱 👁 阅读
SpringBatch读取mysql数据:TaoToken统一Key接入与settings.json配置骨架
1. SpringBatch 读 MySQL 的工程场景与接入痛点SpringBatch 从 MySQL 批量读取数据是很多数据同步、报表生成、离线清洗任务的起点。典型做法是配一个JdbcCursorItemReader或JdbcPagingItemReader把user表里的记录一条条读出来再交给ItemWriter处理。这套流程本身不复杂真正让人头疼的是当你想在开发过程中引入 AI 辅助工具比如让模型帮你生成 RowMapper、排查 chunk 配置、解释 Job 启动参数时每个工具都要单独填一套 API Key、Base URL、模型名配置散落在各个客户端里换一个工具就得重来一遍。这篇内容聚焦的场景很明确你正在写一个 SpringBatch 读 MySQL 的 Job同时希望用一套统一的 Key 和通道把 AI 工具侧的接入配置一次性搞定。我会先给出可复制的settings.json配置骨架再讲清楚 CC Switch 的切换步骤最后用一个真实的读取任务验证整条链路是否跑通。适合正在做 SpringBatch 批处理、又想顺手把 AI 编码工具配置理顺的开发者。核心检索词先摆出来SpringBatch 读取 MySQL 数据、TaoToken 统一 Key、settings.json 配置骨架、CC Switch 切换。这几个词贯穿全文你照着做就能跑通。2. TaoToken 前置准备统一 Key 与通道在动手写配置之前先把 TaoToken 这一侧准备好。TaoToken 的作用是提供统一的 API 通道和 Key 管理让你不用在多个 AI 工具之间反复填不同的地址和密钥。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基础地址是 https://taotoken.net/api 。你需要做的第一件事是拿到一个可用的 Key。进入控制台后创建 API Key建议按用途命名比如springbatch-dev方便后面在多个工具里区分。创建完成后把 Key 复制出来注意它通常只完整显示一次。这里有个容易踩的坑很多人把 Key 直接写死在代码或提交到 Git 的配置文件里。正确做法是放在本地环境变量或不被版本控制的settings.json中。TaoToken 的 Key 是统一入口同一个 Key 可以给模型对话、编码助手等多个场景使用但前提是你的客户端配置指向了正确的 API 地址。如果你还没创建 Key可以走这个路径控制台 → API Keys → 新建。文档页在 https://taotoken.net/doc 接入细节可以对照着看。模型对话入口在 https://taotoken.net/models 想先验证模型是否可用可以直接在网页里发一条消息测试。3. 可复制的 settings.json 配置骨架下面这份settings.json骨架是本文的核心交付物。它把 TaoToken 的统一 Key 和 API 地址集中管理AI 工具侧只需要读取这个文件即可。你可以直接复制把YOUR_TAOTOKEN_KEY替换成上一步拿到的真实 Key。{ provider: taotoken, api_base: https://taotoken.net/api, api_key: YOUR_TAOTOKEN_KEY, models: { default: claude-sonnet-4-20250514, coding: claude-sonnet-4-20250514, chat: claude-sonnet-4-20250514 }, springbatch: { datasource: { url: jdbc:mysql://localhost:3306/springbatch_db?useUnicodetruecharacterEncodingutf8mb4serverTimezoneAsia/Shanghai, username: root, password: YOUR_DB_PASSWORD, driver: com.mysql.cj.jdbc.Driver }, chunk_size: 1, reader: JdbcCursorItemReader, table: user }, tools: { cc_switch: { enabled: true, profile: springbatch-dev } } }这份配置分三块provider和api_base指向 TaoToken 的统一通道models定义不同场景用哪个模型springbatch块则把数据库连接和批处理参数也收进来方便你在写 Job 时对照。注意api_base后面不要多加斜杠保持https://taotoken.net/api这个形式。数据库连接串里的characterEncodingutf8mb4和serverTimezone建议保留SpringBatch 读 MySQL 时如果时区不对create_time这类字段容易读出偏差。chunk_size先设成 1方便你在控制台逐条看到输出验证通过后再按数据量调整。注意settings.json不要提交到公开仓库。如果团队协作把 Key 抽到环境变量配置文件里只留占位符。4. CC Switch 切换步骤与读取任务验证配置写好后用 CC Switch 把当前工具切到springbatch-dev这个 profile。CC Switch 的作用是管理多套配置让你在不同项目、不同 Key 之间快速切换不用手动改文件。切换步骤第一步打开 CC Switch确认它读取的是你刚编辑的settings.json所在目录。如果 CC Switch 有独立的配置路径把上面的 JSON 内容同步过去或者用软链接指向同一份文件。第二步在 CC Switch 的 profile 列表里选择springbatch-dev点击应用。应用后它会自动把api_base和api_key注入到当前工具的运行环境。第三步验证切换是否生效。可以在终端里发起一次模型对话请求确认返回正常。模型对话入口在 https://taotoken.net/models 你也可以直接在网页端发一条测试消息确认 Key 有效。接下来验证 SpringBatch 读取任务。先建表和插数据和 excerpt 里的结构保持一致create table user( id bigint not null auto_increment comment 主键, name varchar(32) default null comment 用户名, age int default null comment 年龄, primary key(id) ) engineinnodb default charsetutf8mb4; insert into user (name,age) values (dafei,15),(erfei,16),(sanfei,17),(sifei,18),(wufei,19);然后写 Job 配置。核心是JdbcCursorItemReader加RowMapperBean public JdbcCursorItemReaderUser itemReader(DataSource dataSource) { return new JdbcCursorItemReaderBuilderUser() .name(userItemReader) .dataSource(dataSource) .sql(select id, name, age from user order by id) .rowMapper((rs, rowNum) - { User user new User(); user.setId(rs.getLong(id)); user.setName(rs.getString(name)); user.setAge(rs.getInt(age)); return user; }) .build(); }Step 和 Job 的组装Bean public Step step(StepBuilderFactory stepBuilderFactory, JdbcCursorItemReaderUser itemReader) { return stepBuilderFactory.get(stepOne) .allowStartIfComplete(true) .User, Userchunk(1) .reader(itemReader) .writer(list - list.forEach(System.out::println)) .build(); } Bean public Job job(JobBuilderFactory jobBuilderFactory, Step step) { return jobBuilderFactory.get(job) .start(step) .incrementer(new RunIdIncrementer()) .build(); }启动应用后控制台应该逐条打印出 5 条 user 记录。看到dafei到wufei依次输出说明 SpringBatch 读 MySQL 的链路通了。这一步同时验证了数据库连接和批处理配置和 AI 工具侧的 Key 是两条独立的链路但都通过同一份settings.json管理。5. 本篇常见错排查配置跑不通时按下面几个方向排查基本能覆盖大部分问题。Key 无效或 401先确认settings.json里的api_key没有多余空格再确认api_base是https://taotoken.net/api。如果 CC Switch 切换后仍报错检查它是否真的读取了这份文件有些工具会缓存旧配置重启一次即可。数据库连接失败jdbc:mysql://localhost:3306/...里的库名要和实际建库名一致。如果报Unknown database先手动create database springbatch_db。驱动类com.mysql.cj.jdbc.Driver对应 MySQL 8如果是 5.x 版本换成com.mysql.jdbc.Driver。读出的数据为空检查user表里是否真的有数据以及 SQL 里的表名大小写。Linux 环境下 MySQL 默认区分表名大小写user和User不是同一张表。chunk 配置报错User, Userchunk(1)的泛型要和 reader、writer 的类型一致。如果 reader 返回Userwriter 却写成Object编译期就会报错。Job 重复启动失败RunIdIncrementer的作用就是让 Job 每次以新参数启动。如果去掉它第二次运行会因为 Job 实例已存在而失败。保留它或者手动改 Job 参数。CC Switch 切换后模型名不对models.default里的模型名要和 TaoToken 支持的模型列表对齐。如果报模型不存在去模型对话页面确认当前可用的模型标识。6. 接入文档与 Coding Plan 入口整条链路跑通后你手里应该有一份可复用的settings.json、一个切换好的 CC Switch profile以及一个能逐条打印 user 记录的 SpringBatch Job。后续如果要把这套配置用到长期编码或 Agent 场景可以走 Coding Plan入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。需要管理更多 Key 或查看用量控制台在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API Keys 页面在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入过程中遇到配置问题优先对照接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面把 Key、地址、模型名的对应关系写得很清楚。如果你用的是 Claude Code 这类工具Anthropic 兼容配置参考 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。实测下来把数据库配置和 AI 工具配置收进同一份settings.json最大的好处是换机器或换项目时只需要改一个文件。SpringBatch 读 MySQL 的 Job 本身不依赖 AI 工具但当你需要模型帮你解释JdbcPagingItemReader和游标读法的差异、或者生成分页 SQL 时统一 Key 能省掉不少重复配置的时间。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑