getconnection java_Java HikariDataSource.getConnection方法代码示例

该博客详细记录了一次论文相关指标从数据库到ElasticSearch的更新过程。首先,通过HikariDataSource获取数据库连接,然后使用PreparedStatement执行SQL更新操作。更新成功或失败的信息被记录,并且更新的数据会进一步保存到ElasticSearch的REF_DATA索引中。最后,更新日志被保存到数据库,包括更新的总数量、成功和失败的数量以及耗时信息。
摘要由CSDN通过智能技术生成

import com.zaxxer.hikari.HikariDataSource; //导入方法依赖的package包/类

@Override

public boolean store() {

System.out.println("Store begin: type = MetricsPaper.");

LOGGER.info("本次更新论文" + Log.getUpdateTotalNumbers().get() + "篇,"

+ "正在更新第" + Log.getCurrentUpdateNumbers().incrementAndGet() + "篇\n"

+ "链接为:" + getUrl());

final HikariDataSource mysqlDataSource = DataSource.getMysqlDataSource();

// 加上选择条件 URL

REF_UPDATE_SQL = REF_UPDATE_SQL + "'" + getUrl() + "'";

try (final Connection connection = mysqlDataSource.getConnection()){

try (final PreparedStatement preparedStatement = connection.prepareStatement(REF_UPDATE_SQL)) {

bindUpdateSql(preparedStatement);

// 判断执行是否成功

boolean succeed = preparedStatement.executeUpdate() != 0;

if (succeed) {

LOGGER.info("当前共有" + getUpdateSucceedNumbers().incrementAndGet() + "篇论文相关指标更新成功...\n"

+ "链接为;" + getUrl());

}else {

LOGGER.info("当前共有" + getUpdateFailedNumbers().incrementAndGet() + "篇论文相关指标更新失败...\n"

+ "链接为;" + getUrl());

}

boolean isSuccess= updateRefDataIntoES();//更新论文指标到ElasticSearch中的REF_DATA

if (!isSuccess){

LOGGER.info("更新论文指标到ElasticSearch中的REF_DATA失败");

}else {

LOGGER.info("更新论文指标到ElasticSearch中的REF_DATA成功");

}

//保存更新的具体数据到数据库中

DBLog.saveUpdateDetailLog(getUrl(),getCurrentUpdateNumbers().get(),getUpdateTotalNumbers().get(),succeed,

DetailCrawler.getUpdateTime());

if (getCurrentUpdateNumbers().get() == getUpdateTotalNumbers().get()) {

LOGGER.info("更新完成,本次更新相关指标论文总量:" +getUpdateTotalNumbers().get()

+ " 成功数:" + getUpdateSucceedNumbers().get()

+ " 失败数:" + getUpdateFailedNumbers());

long startTime= DetailCrawler.getUpdateMillisecond();//开始更新的时间

long endTime=System.currentTimeMillis();//结束更新的时间

long total=endTime-startTime;

String averageTime=Helper.getSeconds(total/getUrlNumbers().get());

//保存更新完成后的总体情况数据到数据库中

DBLog.saveFinalUpdateLog(DetailCrawler.getUpdateTime(),getUpdateSucceedNumbers().get(),

getUpdateFailedNumbers().get(),getUpdateTotalNumbers().get());

}

return succeed;

}

}catch (SQLException e){

e.printStackTrace();

}

return false;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>