SpringBoot启动项目自动初始化执行sql

今天的积累都是为了更好的明天,加油!我是java程序员可以关注我一起学习哈! 

/**
 * 启动项目自动初始化执行
 */
@Component
public class InitProject implements ApplicationRunner {
    private static final Logger logger = LoggerFactory.getLogger("InitProject");
    @Override
    public void run(ApplicationArguments args) throws Exception {
        logger.info("==========init project start ===========");
        RunSqlScriptUtils.run("testsql");
        logger.info("==========init project end ===========");
    }
}
/**
 * 运行Sql脚本
 * sql脚本放在resources下的sql文件夹下
 */
public class RunSqlScriptUtils {
    /**
     * <p>运行指定的sql脚本
     * @param sqlFileName 需要执行的sql脚本的名字
     */
   public static void run(String sqlFileName) {
        try {
             // 获取数据库相关配置信息
             Properties props = Resources.getResourceAsProperties("db.properties");
             String ifinit = props.getProperty("ifinit");
             if ("true".equals(ifinit)){
                 // jdbc 连接信息: 注: 现在版本的JDBC不需要配置driver,因为不需要Class.forName手动加载驱动
                 String url = props.getProperty("jdbc.url");
                 String username = props.getProperty("jdbc.username");
                 String password = props.getProperty("jdbc.password");

                 // 建立连接
                 Connection conn = DriverManager.getConnection(url, username, password);

                 // 创建ScriptRunner,用于执行SQL脚本
                 ScriptRunner runner = new ScriptRunner(conn);
                 runner.setErrorLogWriter(null);
                 runner.setLogWriter(null);
                 // 执行SQL脚本
                 runner.runScript(Resources.getResourceAsReader("sql/" + sqlFileName + ".sql"));
                 // 关闭连接
                 conn.close();
                 // 若成功,打印提示信息
                 System.out.println("====== SUCCESS ======");
             }

        } catch (IOException | SQLException e) {
                 e.printStackTrace();
        }
   }

    public static void main(String[] args) {
        RunSqlScriptUtils.run("testsql");
    }
}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【资源说明】 基于SpringBoot快速开发的爬虫项目源码+项目使用说明+sql数据库.zip 基于SpringBoot快速开发的爬虫项目源码+项目使用说明+sql数据库.zip 基于SpringBoot快速开发的爬虫项目源码+项目使用说明+sql数据库.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 1 项目简介 1.1 功能介绍 基于WebMagic-0.7.3开源框架实现的爬虫项目 基于SpringBoot框架搭建 支持爬取主流新闻网站的新闻数据 支持爬取东方财富网A股所有股票250日行情,数据量达到100万 支持自动更新数据 支持CCTV欧洲杯2020比赛数据爬取 1.2 数据落库位置 新闻数据存储在MongoDB 股票数据存储在MySQL的stock数据库 1.3 目前支持爬取网站: 新闻 腾讯新闻 凤凰资讯 股票 东方财富 个股信息 东方财富 k线信息 东方财富 交易日信息 东方财富 新股信息 竞技赛事 CCTV 欧洲杯2020赛事 2 使用说明 2.1 数据库准备 1. 准备有效MongoDB、MySQL数据库,并配置到resources/application-dev.yml 2. 初始化数据库 mongoDB脚本:doc/mongoDB.sql MySQL脚本:doc/stock.sql 2.2 启动程序 1. 执行 src/test/java/com/aposs/box/spider/domain/stock/StockTest.java 的 runStockInfoSpiderTest 方法,即可爬取A股所有股票清单 2. 从com.aposs.box.spider.BoxSpiderApplication类启动项目,即可启动服务定时爬取A股行情 2.3 爬取股票数据说明 2.3.1 初始化 tbl_stock_info 表 开始爬取股票k线数据前,需要确认tbl_stock_info表有数据,因为程序是依赖此表中的股票数据执行爬取任务的; 初始化或更新 tbl_stock_info 表的数据入口为: > com.aposs.box.spider.service.StockSpiderService.runStockInfoSpider 也可以选择执行 doc/tbl_stock_info.sql 脚本初始化 tbl_stock_info 表数据,但是可能漏掉新股 2.3.2 爬取A股所有股票250日行情 以下方法为爬取入口为,传入参数 250 即可开始爬取所有股票250日行情 > com.aposs.box.spider.service.StockSpiderService.runKlineSpider(java.lang.Integer) 2.4 通用爬虫(包括各种赛事、新闻爬取) 1. 初始化爬虫元数据表 tbl_spider_mate_data(数据库脚本:doc/tbl_spider_mate_data.sql) 2. 启动项目即可自动爬取相关数据到mongoDB对应的集合中(集合名称为{spider_name})

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值