请教java批量更新mysql,为什么update进程会sleep呢???那个数据库只有我一个人在用的,只执行一个select,然后依次根据id进行update,有时候update进程就sleep了.importjava.sql.Co...

请教java批量更新mysql,为什么update进程会sleep呢???那个数据库只有我一个人在用的,只执行一个select,然后依次根据id进行update,有时候update进程就sleep了.

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.concurrent.ArrayBlockingQueue;

public class DBwriteThread implements Runnable {

private volatile ArrayBlockingQueue queue2;

private volatile ArrayBlockingQueue flag;

public DBwriteThread(ArrayBlockingQueue queue2,

ArrayBlockingQueue flag) {

this.queue2 = queue2;

this.flag = flag;

}

public void run() {

String driver = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://localhost:3306/dev";

String user = "user";

String password = "password";

Connection conn = null;

PreparedStatement stmt = null;

try {

Class.forName(driver);

conn = DriverManager.getConnection(url, user, password);

conn.setAutoCommit(false);

while ((flag.size() < 2) || (!(queue2.isEmpty()))) {

try {

String sql = "update SINA_LEARN_SAMPLE set PARSE_LINE=?,WORD=?,TIMES=?,FEATURE=? where document_id=";

Documents newDocument = queue2.take();

String sql1 = sql + (newDocument.getDocumentID());

String word;

String times;

String feature;

stmt = conn.prepareStatement(sql1);

word = ArrayListToString(newDocument.getWord());

times = ArrayListToString(newDocument.getTime());

feature = ArrayListToString(newDocument.getFeature());

stmt.setString(1, newDocument.getParseLine().get(0));

stmt.setString(2, word);

stmt.setString(3, times);

stmt.setString(4, feature);

stmt.executeUpdate();

conn.commit();

} catch (InterruptedException e1) {

break;

}

}

flag.put(5);

} catch (ClassNotFoundException e1) {

System.err.println("装载JDBC失败");

e1.printStackTrace();

} catch (SQLException e2) {

System.err.println("SQL异常");

e2.printStackTrace();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (stmt != null) {

try {

stmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

public String ArrayListToString(ArrayList newArray) {

String result = null;

for (int i = 0; i < newArray.size(); i++) {

if (result == null) {

result = newArray.get(i);

} else {

result = result + "," + newArray.get(i);

}

}

return result;

}

}

展开

mysql sleep进程 java_请教java更新mysql,更新进程sleep相关推荐

  1. java导出mysql数据库失败_利用Java进行MySql数据库的导入和导出

    利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword  ...

  2. java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...

    近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...

  3. flex java mysql,关于从Flex到Java到mysql:从Flex到Java到mysql-连接失败,从剪贴簿到Java到mysql-成功连接...

    我试图建立从Flex到Java以及从Java到mysql的连接. 我设法连接到Java,但遇到未找到该类的错误:com.mysql.jdbc.Driver. 但是我下载了mysql.jar,将其添加到 ...

  4. mysql表格导入java_使用java技术将Excel表格内容导入mysql数据库

    1.添加POI jar包到项目的lib目录下­ 2.Excel文件目录:d://excel.xls­ 3.数据库字段为:num1 num2 num3 num4 num5 num6­ 4.数据库名:bl ...

  5. mysql 时间戳与java_在Java中处理MySQL日期时间和时间戳

    BalusC对该问题进行了很好的描述,但缺乏一个好的端到端代码,用户可以自己选择并测试它. 最佳做法是始终将日期时间以UTC时区存储在DB中.Sql时间戳类型没有时区信息. 将datetime值写入s ...

  6. java实现 mysql导入_怎么用java实现mysql数据库的导入导出

    匿名用户 1级 2018-11-21 回答 使用Java实现对MySql数据库的导入与导出 package com.project.ajaxs; import java.io.BufferedRead ...

  7. java jdbc(mysql)驱动源码分析,JAVA JDBC(MySQL)驱动源码分析(四)

    connect方法是java.sql.Driver接口中定义的方法,如果连接的数据库不同,那么为不同的数据库编写JDBC驱动将变得很灵活,实现Driver接口即可.连接数据库时首先得装载JDBC驱动, ...

  8. mysql linux 还原_linux下java还原mysql数据库

    pageEncoding="UTF-8" import="java.lang.*,java.io.*,java.util.*"%> Runtime run ...

  9. java对mysql查询_如何利用java对mysql数据库进行增删改查

    代码如下: 增: @Test //数据插入 public void demo1() { Connection conn=null; Statement stmt=null; try { //注册驱动 ...

  10. java mysql教程基于_基于JAVA和MYSQL数据库实现的学生信息管理系统

    1 项目介绍 学生成绩管理系统是广泛使用的一种信息管理系统,在学生成绩管理系统中,需要能处理各班信息.各班下属学生的个人信息及每个学生学习成绩信息.班级信息包括班级编号.班级名称,学生信息包括学号.姓 ...

最新文章

  1. HDU 1236 ( 排名 )
  2. 回过头来看对象的四种状态强软弱虚引用的理解
  3. 【Linux】36.ubuntu删除vscode的缓存,可清理出几十G空间
  4. hadoop元数据合并过程_Hadoop元数据合并异常及解决方法
  5. 【LeetCode】3月31日打卡-Day16-数组排序算法汇总
  6. JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块...
  7. PyCharm双击或默认情况下是插入的输入状态解决方法
  8. 使用ASP.NET Core开始使用gRPC客户端和服务器
  9. nginx server location
  10. POJ-1149(网络流)
  11. 2019 年度全球程序员薪酬报告:40岁以后普遍遭遇收入天花板
  12. pywin32+excel(一)——Python使用win32com/pywin32操作excel
  13. KGB知识图谱通过数据可视化提升金融行业分析能力
  14. mysql 连续天数_MYSQL面试题:统计连续打卡天数
  15. 阿星 centos7卸载mysql并且通过yum安装mysql
  16. 虚拟机安装Windows7系统(亲测超详细)
  17. 影响微信公众号排名的因素
  18. 最有可能成为第五个一线城市,苏州 or 杭州?
  19. 全球主流云桌面传输协议
  20. 现在完成时与其他时态的区别

热门文章

  1. 20200813每日一句
  2. Improving Opencv 7: The Core Functionality : Discrete Fourier Transform
  3. 190220每日一句
  4. 181007扇贝有道每日一句
  5. Atitit 存储引擎核心技术 总结目录1. 表的存储有三个文件:结构+数据+索引 12. 页式管理
  6. Atitit mybatis业务流程配置化管理总结 目录 1. Mybatis 1 2. 流程模型常见的bpm模式 1 2.1. 活动task 流程,getway流程控制(分支跳转 循环等) 1 3
  7. Atitit 函数式编程与命令行语言的区别与优缺点 目录 1. 常见的函数式语言 2 1.1. 命令行 bat 2 1.2. Sql h5 css 正则表达式 2 1.3. 工作流语言 anno注
  8. Atitit v2 工作计划与工作日志推荐格式markdown 与模板 attilax 总结
  9. Atitit 词法分析器的设计最佳实践说明attilax总结
  10. Atitit 管理原理与实践attilax总结