问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中如何用多线程访问数据库

发布网友 发布时间:2022-04-08 01:30

我来回答

1个回答

热心网友 时间:2022-04-08 03:00

//将数据库中的数据条数分段 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; resie=sum%30000; }else{ resie=sum; } System.out.println(n+" "+resie); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }线程类public MyThread(int start,int end) { this.end=end; this.start=start; System.out.println("处理掉余数"); try { System.out.println("--------"+Thread.currentThread().getName()+"------------"); Class.forName(SQLSERVERDRIVER); System.out.println("加载sqlserver驱动..."); cons = DriverManager.getConnection(CONTENTS,UNS,UPS); stas = cons.createStatement(); System.out.println("连接SQLServer数据库成功!!"); System.out.println("加载mysql驱动....."); Class.forName(MYSQLDRIVER); con = DriverManager.getConnection(CONTENT,UN,UP); sta = con.createStatement(); // 关闭事务自动提交 con.setAutoCommit(false); System.out.println("连接mysql数据库成功!!"); } catch (Exception e) { e.printStackTrace(); } // TODO Auto-generated constructor stub } public ArrayList<Member> getAll(){ Member member; String sql1="select * from (select row_number() over (order by pmcode) as rowNum,*" + " from [CMD].[dbo].[mycopy1]) as t where rowNum between "+start+" and "+end; try { System.out.println("正在获取数据..."); allmembers=new ArrayList(); rss=stas.executeQuery(sql1); while(rss.next()){ member=new Member(); member.setAddress1(rss.getString("address1")); member.setBnpoints(rss.getString("bnpoints")); member.setDbno(rss.getString("dbno")); member.setExpiry(rss.getString("expiry")); member.setHispoints(rss.getString("hispoints")); member.setKypoints(rss.getString("kypoints")); member.setLevels(rss.getString("levels")); member.setNames(rss.getString("names")); member.setPmcode(rss.getString("pmcode")); member.setRemark(rss.getString("remark")); member.setSex(rss.getString("sex")); member.setTelephone(rss.getString("telephone")); member.setWxno(rss.getString("wxno")); member.setPmdate(rss.getString("pmdate")); allmembers.add(member); // System.out.println(member.getNames()); } System.out.println("成功获取sqlserver数据库数据!"); return allmembers; } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("获取sqlserver数据库数据发送异常!"); e.printStackTrace(); } try { rss.close(); stas.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public void inputAll(ArrayList<Member> allmembers){ System.out.println("开始向mysql中写入"); String sql2="insert into test.mycopy2 values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { ps=con.prepareStatement(sql2); System.out.println("-------------------------等待写入数据条数: "+allmembers.size()); for(int i=0;i<allmembers.size();i++){ ps.setString(1, allmembers.get(i).getPmcode()); ps.setString(2, allmembers.get(i).getNames()); //System.out.println(allmembers.get(i).getNames()); ps.setString(3, allmembers.get(i).getSex()); ps.setString(4, allmembers.get(i).getTelephone()); ps.setString(5, allmembers.get(i).getAddress1()); ps.setString(6, allmembers.get(i).getPmdate()); ps.setString(7, allmembers.get(i).getExpiry()); ps.setString(8, allmembers.get(i).getLevels()); ps.setString(9, allmembers.get(i).getDbno()); ps.setString(10, allmembers.get(i).getHispoints()); ps.setString(11, allmembers.get(i).getBnpoints()); ps.setString(12, allmembers.get(i).getKypoints()); ps.setString(13, allmembers.get(i).getWxno()); ps.setString(14, allmembers.get(i).getRemark()); //插入命令列表 //ps.addBatch(); ps.executeUpdate(); } //ps.executeBatch(); con.commit(); ps.close(); con.close(); this.flag=false; System.out.println(Thread.currentThread().getName()+"--->OK"); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("向mysql中更新数据时发生异常!"); e.printStackTrace(); } } @Override public void run() { // TODO Auto-generated method stub while(true&&flag){ this.inputAll(getAll()); } }
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“泛览周王传”的出处是哪里 避事的意思是什么 怠息的意思是什么 “偷闲来此一嚬呻”的出处是哪里 怠息意思和来源是什么 客厅中间沙发旁旁边放什么 客厅沙发旁边放什么合适 沙发左右摆什么位置 淘宝网无法注册邮箱验证 谁能帮我注册一个谷歌帐号,我一直注册不成功,淘宝上也买不到,在线等... 南京草场门大街的沁水宫有什么服务 画龙点睛的意思 南京沁水宫浴池23号的服务 画龙点睛的意思? 南京清水宫到省政府有多远 南京沁水宫搬到什么地方去了 画龙点睛成语的意思 沁水宫浴场怎么样 画龙点睛的意思是什么? 现在的人们用画龙点睛这个成语来形容什么? 成语画龙点睛的意思 墙壁插座,只有4根网线,还是电话线,我也不清楚,如何连接上。4根线 那画龙点睛到底是什么意思呢? 4根网线怎么接在8根网线插座内的接线头上? 画龙点睛意思? 一根网线只用4芯来接墙壁插座,求解插座端与机柜端水晶头的接法。 成语中,“画龙点睛”是什么意思? 4根网线插座接法有哪些 画龙点睛的意思。 家用4M网线水晶头及网线插座接那几根线,怎么接? 网线插座4口怎么接 发出的转账怎么马上撤回来 怎么警惕母乳造成婴儿花生过敏? 如何警惕母乳造成婴儿过敏? 怎样提取别人公众里面的图文信息中的视频链接 windows能安装redis吗 Redis可视化工具,哪位朋友可以提供一款吗?谢谢! 如何获取微信公众号关注页面的链接地址? 安装redis时,make命令报错 股票中的回抽是什么意思 如何快速导出一个公众号所有的已发布的文章的名字和链接 小米至尊怎么关闭后台 为什么在股票、外汇市场中突破之后会有回抽?回抽怎么理解? 股市中什么叫回抽??什么叫前期缺口 vivo手机的隐藏系统在哪里? 什么叫回抽吸纳 股市中什么是回抽确认,上回抽,下回抽,知道的朋友给我个简单易懂的答案,谢谢 在股票操作中什么是短线回抽洗盘呀 vivo怎么打开隐藏空间 年审营业执照 临沂个体执照年检一年多少钱,年检期已经过了要叫罚款吗