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

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();
}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值