Go to file
ycg adf5e5464e Clean: Remove IDE and tool files from version control
- Remove .idea/ directory from Git tracking
- Remove .claude/ directory from Git tracking
- Update .gitignore to exclude IDE and tool files
- Keep local files intact but prevent future commits

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 11:44:26 +08:00
src Initial commit: Java股票数据获取项目 2025-12-05 11:31:25 +08:00
.gitignore Clean: Remove IDE and tool files from version control 2025-12-05 11:44:26 +08:00
CLAUDE.md Initial commit: Java股票数据获取项目 2025-12-05 11:31:25 +08:00
pom.xml Initial commit: Java股票数据获取项目 2025-12-05 11:31:25 +08:00
README.md Initial commit: Java股票数据获取项目 2025-12-05 11:31:25 +08:00

股票数据抓取项目

基于Tushare Pro接口的股票数据定时抓取系统使用Spring Boot + MyBatis + MySQL技术栈。

功能特性

  • 🔄 定时抓取: 支持定时获取股票基本信息和日线行情数据
  • 📊 数据存储: 使用MySQL存储股票数据支持批量插入和去重
  • 高性能: 使用HikariCP连接池和MyBatis优化数据库操作
  • 🔧 灵活配置: 支持通过配置文件自定义抓取策略和数据库连接
  • 📈 多时间周期: 支持日线、周线、月线数据抓取
  • 🗃️ 数据清理: 自动清理历史数据,控制存储空间

技术栈

  • Java 8+: 主要编程语言
  • Spring Boot 2.7: 应用框架
  • MyBatis: ORM框架
  • MySQL: 数据存储
  • Tushare Pro SDK: 股票数据接口
  • Quartz: 定时任务调度
  • HikariCP: 数据库连接池

快速开始

1. 环境准备

  • JDK 8+
  • Maven 3.6+
  • MySQL 5.7+

2. 数据库初始化

执行SQL脚本创建数据库和表

source src/main/resources/sql/init.sql

3. 配置文件修改

编辑 src/main/resources/application.properties

# Tushare配置
tushare.token=your_actual_tushare_token

# 数据库配置
db.url=jdbc:mysql://localhost:3306/stock_data?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
db.username=your_username
db.password=your_password

4. 编译和运行

# 编译项目
mvn clean compile

# 打包项目
mvn clean package

# 运行应用程序
java -jar target/go-stock-1.0-SNAPSHOT.jar

使用说明

命令行参数

# 启动应用程序并运行定时任务
java -jar go-stock.jar

# 手动获取股票基本信息
java -jar go-stock.jar fetch-basic

# 手动获取股票日线行情数据
java -jar go-stock.jar fetch-daily

# 清理历史数据保留60天
java -jar go-stock.jar clean-data 60

# 显示帮助信息
java -jar go-stock.jar help

定时任务配置

application.properties 中配置定时任务:

# 启用定时任务
task.enabled=true

# 股票基本信息获取时间每天凌晨1点
task.cron.stock.basic=0 0 1 * * ?

# 股票日线数据获取时间每个交易日下午3点30分
task.cron.stock.daily=0 30 15 * * ?

项目结构

src/main/java/com/sjz/
├── App.java                 # 主程序入口
├── config/                  # 配置类
│   ├── DatabaseConfig.java  # 数据库配置
│   └── TushareConfig.java   # Tushare配置
├── mapper/                  # 数据访问层
│   ├── StockBasicMapper.java
│   └── StockDailyMapper.java
├── model/                   # 数据模型
│   ├── StockBasic.java
│   └── StockDaily.java
├── service/                 # 业务逻辑层
│   ├── StockBasicService.java
│   └── StockDailyService.java
├── task/                    # 定时任务
│   └── StockDataScheduler.java
└── util/                    # 工具类
    ├── ConfigUtil.java
    └── DateUtil.java

src/main/resources/
├── application.properties   # 配置文件
├── mybatis-config.xml      # MyBatis配置
└── sql/init.sql            # 数据库初始化脚本

API限制说明

Tushare Pro接口有以下限制

  • 每分钟请求次数限制:根据用户等级不同
  • 每次返回记录数限制通常5000条
  • 建议在请求间添加适当延时,避免触发限制

监控和日志

  • 使用SLF4J + Logback记录运行日志
  • 数据库操作记录详细日志
  • 定时任务执行状态监控
  • 错误信息记录和报警

注意事项

  1. Tushare Token: 需要在Tushare官网注册并获取有效的API Token
  2. 交易日: 系统会自动判断交易日,非交易日不会执行数据抓取
  3. 数据去重: 使用唯一键约束确保数据不重复
  4. 数据备份: 建议定期备份数据库
  5. 监控告警: 建议配置监控告警,及时发现问题

扩展功能

  • 添加更多数据源
  • 实现数据分析和统计功能
  • 添加Web管理界面
  • 支持更多时间周期数据
  • 添加邮件通知功能

许可证

本项目仅供学习和研究使用请遵守相关API使用条款。