@SuppressWarnings("resource")
	@Override
	public void run() {
		int count = 0;
		String insert = "insert into inauthor(paperid,name,inauthors)values(?,?,?)";
		try {
			PreparedStatement statement = sqLconnection.conn
					.prepareStatement(insert);
			for (String id : IDS) {
				List<String> citationIDs = getCitationIDList
						.getCitationPapers(Integer.parseInt(id));
				List<String> list = new ArrayList<>();
				List<String> subAuthor = new ArrayList<>();
				if (citationIDs.size() > 0) {
					for (String curid : citationIDs) {
						subAuthor = getAuthorList.getAuthors(Integer
								.parseInt(curid));
						for (String au : subAuthor) {
							if (list.contains(au)) {
								int index = list.indexOf(au) + 1;
								int n = Integer.parseInt(list.get(index)) + 1;
								list.set(index, n + "");
							} else {
								list.add(au);
								list.add(1+"");
							}
						}
						subAuthor = new ArrayList<>();
					}
				}
				citationIDs = new ArrayList<>();
				List<String> tmpAuthor = getAuthorList.getAuthors(Integer
						.parseInt(id));
				statement.setInt(1, Integer.parseInt(id));
				statement.setString(2, tmpAuthor.toString());
				statement.setString(3, list.toString());
				statement.addBatch();
				count++;
				if (count % 1000 == 0) {
					System.out.println(name + ":" + count);
					statement.executeBatch();
					statement.clearBatch();
					this.sqLconnection.disconnectMySQL();
					this.getAuthorList.closeConnection();
					this.getCitationIDList.closeConnection();
					this.getAuthorList = new GetAuthorList();
					this.getCitationIDList = new GetCitationIDList();
					this.sqLconnection = new connection().conn();
					statement = sqLconnection.conn.prepareStatement(insert);

				}
				tmpAuthor = new ArrayList<>();
			}
			statement.executeBatch();
			statement.clearBatch();
			statement.close();
			this.sqLconnection.disconnectMySQL();
			this.getAuthorList.closeConnection();
			this.getCitationIDList.closeConnection();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}