java线程读取数据库

java线程读取数据库,第1张

//将数据库中的数据条数分段

public void division(){

//获取要导入的总的数据条数

String sql3="SELECT count(*) FROM [CMD].[dbo].[mycopy1]"

try {

pss=cons.prepareStatement(sql3)

rss=pss.executeQuery()

while(rss.next()){

System.out.println("总记录条数:"+rss.getInt(1))

sum=rss.getInt(1)

}

//每30000条记录作为一个分割点

if(sum>=30000){

n=sum/30000

residue=sum%30000

}else{

不建议这样做,一般不符合开发规范,如果这样的话,你想想在业务量多的情况下,多个线程如果不控制,数据库连接会将数据库服务器爆掉的,会影响业务的

常规做法:数据库连接池(durid了解一下),据某些统计哈,真正用来做查询的资源不超过整个查询数据库的生命周期的30%,大部分时间都用开创建连接关闭连接等 *** 作,如果这个时候建立数据库连接池的话,可以有效的将这部分时间释放掉

首先,你的确定数据的主键是否可以使用序列自增。

如果可以那么你可以在插入数据的时候获取序列里的值,这样数据就不会重复了。

其次,可以创建一个公共方法,进行数据的插入 *** 作,并且方法类型声明为 static synchronized

类型,这样基本上就不会出现数据重复的现象了

最后,要看你是怎么获得待插入源数据了,这个获得数据源的方法也做成static synchronized的公

共方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9972470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存