您的位置:首页 > 编程语言 > Java开发

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

2017-08-26 08:57 1026 查看
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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐