导航:首页 > 编程大全 > 线程之间获取数据库

线程之间获取数据库

发布时间:2023-09-19 02:19:04

『壹』 java多线程连接数据库问题

似的,main也是一个线程,第一个被执行,执行之后其空间被释放,然后执行其他线程,因此必须在每个线程中连接数据库

『贰』 如何用java单用户多线程查询数据库

首先,你的确定数据的主键是否可以使用序列自增。 如果可以那么你可以在插入专数据的时候获取序列里属的值,这样数据就不会重复了。 其次,可以创建一个公共方法,进行数据的插入操作,并且方法类型声明为 static synchronized 类型,这样基本上就不...

『叁』 c#编程中,怎样使用多线程处理数据库读取的信息

不用线程池也可以。你用循环启动多个线程就可以了。
while(记录不等于空)
{
创建一个新线程,参数是返回的一条记录。
}

『肆』 delphi 如何用ADO进行多线程查询数据库

我刚做了一个在线程中使用ado的系统,实现方式如下:使用dm来存放
connection
,在各个线程中create
adoquery控件,connection属性设为dm中的connection,在使用完之后别忘了free。另外别忘了同步。好运!

『伍』 java线程中使用mysql连接查询数据库

不建议这样做,一般不符合开发规范,如果这样的话,你想想在业务量多的情况下内,多个线程如果不控制容,数据库连接会将数据库服务器爆掉的,会影响业务的
常规做法:数据库连接池(rid了解一下),据某些统计哈,真正用来做查询的资源不超过整个查询数据库的生命周期的30%,大部分时间都用开创建连接关闭连接等操作,如果这个时候建立数据库连接池的话,可以有效的将这部分时间释放掉

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

//将数据库中的数据条数分段 public void division(){ //获取要导入的总的数据条数 String sql3="SELECT count(*) FROM [CMD].[dbo].[my1]"; 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].[my1]) 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.my2 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()); } }

阅读全文

与线程之间获取数据库相关的资料

热点内容
小米复制文件找不到 浏览:959
什么是网络层 浏览:73
如何利用编程做多文件数据合并 浏览:666
java如何用tcp发送16进制协议 浏览:975
js获取当天 浏览:637
在什么网站看战狼2 浏览:881
win7桌面工具栏不见了 浏览:346
qq群几个管理员 浏览:598
录光盘怎么找不到文件 浏览:885
flip5怎么连app 浏览:273
五个g的文件怎么传到u盘 浏览:316
如何用编程编译运行出心形图案 浏览:486
linuxcentos64vpn 浏览:328
桔城pdf转换成word转换器 浏览:754
java数组排重 浏览:846
1703版win10 浏览:357
windows文件上传 浏览:111
精通jsp编程技术 浏览:139
电脑软件删不了提示找不到文件 浏览:223
宁波哪里有学It编程的地方 浏览:808

友情链接