编写一个java程序,从1加到100,每做一次加法,就休眠1秒,当程序运行过程中,杀死这个程序。 再次运行,还能从上次的计算结果继续下去

浙政钉H5应用上架实战:从环境配置到发布避坑指南 本文详细解析浙政钉H5应用上架全流程,从环境配置到发布避坑指南。重点介绍Vue 2.6 + Node 14.21.3的稳定开发环境搭建、项目结构规范及常见报错解决方案,帮助开发者高效完成浙政钉H5应用上架流程。 阅读详情
package test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.time.chrono.MinguoChronology;
import java.util.List;
import java.util.Map;
import jdbc.DBUtils;
public class Test01 {
static Object nid=null;
static Object nsum = null;
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
/*编写一个java程序,从1加到100,结果是5050。
每做一次加法,就休眠1秒
当程序运行过程中,杀死这个程序。
再次运行,还能从上次的计算结果继续下去。*/

Runnable r = new Runnable() {

@Override
public void run() {
Connection conn=null;

Statement stmt = null;


try {
conn = DBUtils.getConnection();
stmt = conn.createStatement();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

//先查询数据库,将数据库的最后一行两个值获取出来

try {
ResultSet rs = stmt.executeQuery("select max(id),max(num) from tablea;");

while(rs.next()){
nid = rs.getObject(1);
nsum = rs.getObject(2);

}

} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}

//判断获取的数据库结果集是否为空,如果为空,则赋值为0
if(nsum==null){
nsum=0;
}
if(nid==null){
nid=0;
}
int sum =(Integer)nsum;
for( int i = (Integer)nid+1; i <= 100; i++ ){
sum = + i +sum;

try {
stmt.executeUpdate("insert into tablea(id,num) values("+i+"," +sum+");");

} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println(sum);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//System.out.println(sum);

}
};
Thread t = new Thread(r);
t.start();
}
}




以上的比较基础初级,但还代码量也偏多,下面C3P0数据源和DBUtils来实现这个题目

package test100;


import java.sql.SQLException;
import java.util.List;


import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;


import c3p0_utils.C3P0Utils;


public class Test {


static Object nsum=null;
static Object nid = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
//得到两个数值,分别是数据库最底下的一行数据
try {

//使用jar封装好的类库,用QueryRunner来进行查询和修改操作
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
String sql="select * from tablea";
List<Object[]> list = qr.query(sql, new ArrayListHandler());
for(int i=0; i< list.size(); i++){
for(int j=0; j< list.get(i).length; j++){
nid = list.get(0)[list.get(0).length-1];
nsum = list.get(list.size()-1)[list.get(i).length-1];
}
}
//判断数据库是否为空
//判断获取的数据库结果集是否为空,如果为空,则赋值为0
if(nsum==null){
nsum=0;
}
if(nid==null){
nid=0;
}
int sum = (Integer)nsum;
for(int i = (Integer)nid+1;i < 100; i++){
sum = sum + i;

String  sql2 = "insert into tablea (id,num) values(?,?)";
qr.update(sql2, i,sum);
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
Thread t = new Thread(r);
t.start();
}

}


相关推荐

思澈sdk-新建lcd

co5300至此有3个同ID的驱动,在co5300xxxx.c的LCD_DRIVER_EXPORT(co5300, LCD_ID, &lcdc_int_cfg, &CO5300_drv, LCD_PIXEL_WIDTH, LCD_PIXEL_HEIGHT, 2);2 在customer\peripherals\Kconfig_lcd中添加如下配置(注意修改的地方有两个LCD_USING_TFT_CO5300_143)5 在该文件中的config LCD_DPI配置项下添加:(这里300为DPI)

gongyuan073的专栏 1390

java多线程学习笔记(三)

继续之前博客学习八.线程状态线程的状态转换是线程控制的基础。线程的状态总体可分为五大状态:分别是新、死、可运行、运行、等待/阻塞/睡眠。下面是关系图。1.新状态:线程对象已经创建,但是还没有start();2.可运行:线程目前有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从等待/阻塞/睡眠状态回来后,也可以返回...

qishituan521的博客 201

Anroid8.1 强制修改系统可以adb remount

在Android6.0 (Android M)user版本上,发现使用adb root后再adb remount系统之后会提示这样信息:remount of /system failed: Read-only file system,这是不能对system分区进行操作,提示没有写权限,为只读文件系统Read-only file system,因为系统本身在user就不支持可写操作,我们就不能adb push来调试apk,如果想调试apk就需要修改system、vendor权限问题。 如下现象: C:\Use

wq892373445的博客 1408

JavaScript基础

JavaScript基础语法 变量和数据类型 JavaScript是弱类型脚本语言,使用变量前,可以无需定义,当使用某个变量的时候直接使用即可。主要分为以下两种定义方式: 隐式定义:直接给变量赋值 <script> a="123456789"; //使用隐式定义 console.log(a); //输出显示 </script> 显式定义 <script type="text/script"> var a; //使用显

weixin_44863091的博客 303

长安车机破解后能干啥?分享我的UNI-K车机安装第三方应用与优化体验实录

本文详细记录了长安UNI-K车机破解后的实用玩法与深度优化指南,包括安装第三方应用、导航体验升级、影音系统改造及系统美化等。通过工具箱和升级技巧,车主可以大幅提升用车体验,解锁更多隐藏功能。

weixin_33217202的博客 407

Minitab田口设计实战:如何用正交试验优化遗传算法参数(附完整操作步骤)

本文详细介绍了如何利用Minitab田口设计进行遗传算法参数优化,通过正交试验方法显著提升效率。文章涵盖实验设计、Minitab操作步骤、结果分析及高级技巧,帮助工程师快速掌握这一工业级优化技术,实现算法性能的显著提升。

wind6的博客 866

java实现从1开始到N的所有数中出现的所有“1”的个数

给定一个十进制正整数 N,写下从 1开始,到 N的所有整数,然后数一下其中出现的所有“1”的个数。 例如: N=2,写下 1,2。这样只出现了 1个“1”。 N=12,我们会写下 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12。这样,1的个数是 5。 解决方法:取N各位数位上可能出现1的个数总和! java实现代码: //count为1的总数,fac

EnjoyInwind的专栏 1763

低功耗和UPF介绍

参考[UPF]低功耗(Low Power Design)and UPF介紹

青春易逝,愿不负昭华,期待梦与远方 1万+

java代码实现每日从1自增

在这之前写过一篇字段每天从0开始自增,用数据库实现的方式,有兴趣的话可以看一下:非主键自增序列,每天都需要从0开始 保存到数据库 现在分享一个简单的方式: redis实现: /** * redis操作Service, */ public interface RedisService { /** * 自增操作 * @param delta 自增步长 ...

qq_40155654的博客 7006

PX4从放弃到精通(五):PX4中的姿态表示方法及转换关系

文章目录机体坐标系与地理坐标系一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 机体坐标系与地理坐标系 在实际应用中,加速度计的测量轴是由运动平台安装固定此器件的轴向决定的。这些坐标轴就形成了载体坐标系,定义如下: 坐标原点设在载体质心(这样可简化运动方程的推导); y轴指向载体前方,称为横滚轴,横滚角以y轴为起始旋转轴而得到,符合右手定则; x轴与y轴夹角90°,指向载体横向,称为俯仰轴,俯仰角以x轴为起始旋转轴而得到,符合右手定则; z轴与x轴、y轴构成右手笛卡儿坐标系,指向载体垂直方向

超维空间科技的博客 8115

3. UFS 电气时钟、复位、信号和电源

当接收到用于从 HS-MODE 到 LS-MODE 转换的 DME_POWERMODE.ind 或用于从 HS-MODE 到 HIBERN8 转换的 DME_HIBERNATE_ENTER.ind 时,UFS 主机可以启动一个计时器。在整个 PA_INIT 过程中,不应门控参考时钟。如果 UFS 主机启动从 HS-MODE 到 LS-MODE 或 HIBERN8 的电源模式更改,则应确保在关闭参考时钟之前,至少已经经过了由 bRefClkGatingWaitTime 定义的最小时间间隔,见图 6.3。

qq_42238448的博客 1293

java从1开始计时用线程_java – Python – 线程,计时或函数使用?

我正在制定一个关于如何解决这个问题的想法.请帮忙.我的项目包含一个N x N网格,其中包含一系列块,这些块应该在随机方向和随机速度内移动(每隔0.1秒,块的位置用速度更新).我有三个“特殊”块,预计会有各自的移动功能.我将有其他块(其中许多)除了更新它们的位置之外什么都不做,并确保它们保留在网格中.现在这三个块具有超出移动的功能,但是每个块都单独运行,等待另一个块的特殊功能完成(块2将在块1上等待...

weixin_30127493的博客 159

【从零到一】Jetson Nano上YOLOv5部署完全攻略:零基础小白也能玩转边缘AI推理

文章摘要: 本文详细介绍了在Jetson Nano边缘设备上部署YOLOv5目标检测模型的完整流程。从硬件准备、系统镜像烧录、基础环境配置,到CUDA/cuDNN验证、Python虚拟环境搭建及PyTorch安装,逐步指导开发者完成部署准备。教程兼顾理论原理与实践操作,提供Python和C++两种实现方案,并涵盖TensorRT优化、实时检测等生产级应用场景,帮助零基础开发者快速掌握边缘AI推理技术,实现高性能目标检测应用。

LXY_LOVE36的博客 369

编写一个java程序,从1加到100,结果是5050。 每做一次加法,就休眠1秒 当程序运行过程中,杀死这个程序。 再次运行,还能从上次的计算结果继续下去。

给大家推荐个靠谱的公众号程序员探索之路,大家一起加油 ​  package com.qf.second.day08_jdbc; import java.util.List; import java.util.Map; import java.util.Map.Entry; /* * 编写一个java程序,从1加到100,结果是5050。 每做一次加法,就休眠1秒 当程序运行过程中,杀死这个...

yueloveme的博客 3724

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java程序输出5050_编写一个java程序,从1加到100,结果是5050。 每做一次加法,就休眠1秒 当程序运行过程中,杀***这个程序。 再次运行,还能从上次的计算结果继续下去。...

给大家推荐个靠谱的公众号程序员探索之路,大家一起加油 ​package com.qf.second.day08_jdbc;import java.util.List;import java.util.Map;import java.util.Map.Entry;/** 编写一个java程序,从1加到100,结果是5050。每做一次加法,就休眠1秒当程序运行过程中,杀死这个程序。再次运行,还能从上次...

weixin_39775029的博客 487

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java从入门到放弃30---线程终止/线程休眠/线程礼让/线程合并

Java从入门到放弃30—线程终止/线程休眠/线程礼让/线程合并 01 线程终止 调用线程的stop方法可以杀死一个线程,该方法抛出ThreadDeath错误对象,由此杀死线程。但是stop方法已经过时,不要再自己的代码中调用这个方法。 建议使用一个标志位定义终止变量,当flag=false,终止线程运行。 public class TerminatedTest extends Thread ...

DOGIOOH的博客 316

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

让你学会与理解Java的线程与并发(二,创建运行与常见方法)

小编相信大家学习前面的二篇文章对线程与线程创建已经有一定的了解,下面就让跟小编一起来知道线程是如何运行的还有一些线程常见的方法吧! 线程运行 多个线程的运行 测试代码(运行几秒就关闭,需要自己电脑cpu有二核或者以上,

weixin_47514459的博客 1064

记一次库版本升级引起程序自动停止

遇到程序结束我们需要对jvm程序结束需要有了解,对应这个情况,本质上是需要我们对 deamon线程和用户线程有一定得理解。然后需要这种问题我们需要结合jvm工具分析程序的运行情况。

AndCo的博客 1208

Java多线程后台线程

后台线程是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的一部分。因此,当所有的非后台线程结束时,程序也就终止了,同时会杀死进程中的所有后台线程。反过来说,只要有任何非后台线程还在运行,程序就不会终止。比如,执行main()的就是一个非后台线程。import java.util.concurrent.TimeUnit;public class SimpleDaem

IsResultXaL的博客 1207

Java多线程之常用的相关方法总结(线程停止、线程休眠、线程礼让、线程优先级、守护线程等等)

setPriority(int newPriority) 更改线程的优先级 static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠 void join() 等待该线程终止 static void yield() 暂停当前正在执行的线程对象,并执行其他线程 void interrupt() 中断线程,别用这个方式 boolean isAliv

熊凯瑞的博客 1087

后台线程介绍

(下面的描述和代码摘抄自书目《java编程思想》) 所谓后台(daemon)线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分。因此,当所有非后台线程结束时,程序也就终止了,同时会杀死所有的后台线程。反过来说,只要有任何非后台线程还在运行,程序就不会终止。比如,执行main()的就是一个非后台线程。 1.设置后台线程的方法是在线程启动之前调用set...

tao111369的博客 1424

Java多线程基础API应用

Java多线程基础API应用 1、JUC中的线程休眠 Thread t0 = new Thread("哈哈哈哈线程A"){ @Override public void run() { try { for (int i = 0; i < 100; i++) { System.out.println(" 我是线程A"+ Thread.currentThread().getName() + i);

tyyyy的博客 2380

java里面yield用法_JAVA並發操作——Thread常見用法(Sleep,yield,后台線程)

1)休眠 sleepsleep()可以使任務中止執行一段時間(這段時間是指定的)。但是要注意的是對sleep()的調用可以拋出InterruptedException異常,並且這個異常在run()方法中就得捕獲,進行處理,這是因為異常不能跨線程傳播,所以我們必須在本地處理所有任務內部產生的異常。在舊版本中,sleep的用法是這樣的,Thread.sleep(1000);但是在Java SE5 之后...

weixin_33497518的博客 130

java线程sleep yield_JAVA并发操作——Thread常见用法(Sleep,yield,后台线程)

1)休眠 sleepsleep()可以使任务中止执行一段时间(这段时间是指定的)。但是要注意的是对sleep()的调用可以抛出InterruptedException异常,并且这个异常在run()方法中就得捕获,进行处理,这是因为异常不能跨线程传播,所以我们必须在本地处理所有任务内部产生的异常。在旧版本中,sleep的用法是这样的,Thread.sleep(1000);但是在Java SE5 之后...

weixin_27070451的博客 232

Java多线程(三)

线程中的一些方法 1.线程加入 public final void join() 等待该线程中止,其他线程才能继续抢着执行,因为线程执行的时候,每个线程都会抢占CPU的执行权,所以我们可以利用此方法先让一个线程执行完毕后,然后再去执行其他的线程。 package com.edu_01; public class MyThread extends Thread{ @Override ...

Veer_c的博客 6994

CTO 说了,如果发现谁用 kill -9 关闭程序就开除

点击上方蓝色“方志朋”,选择“设为星标”回复“666”获取独家整理的学习资料!来源:https://blog.youkuaiyun.com/qq_33220089kill -9 pid ???kill...

方志朋的博客 83
上一篇: MySql数据库基本select查询语句练习题,初学者易懂。
下一篇: SQL注入漏洞的简单代码实现,易懂
senwei.zhang
博客等级 码龄9年 28粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值