从数据库中读地址,并发http请求得到xml并保存

本文介绍了使用Java处理数据库查询结果并生成XML文件的过程,包括数据获取、XML内容解析及发送GET请求,最终将XML数据写入本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.panpan.datatools;

import java.io.FileWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.LinkedList;

import junit.framework.TestCase;

import org.apache.commons.lang.StringUtils;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.io.XMLWriter;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.panpan.util.HttpClientUtils;

public class MsgGenerateXMLhelper extends TestCase {

	@Test
	public void testOp() throws Exception {
		pstmt = con.prepareStatement("select id,url from t_user");
		rs = pstmt.executeQuery();
		LinkedList<Msg> msg_l = new LinkedList<Msg>();
		while (rs.next()) {
			Msg msg = new Msg();
			msg.setId(rs.getInt(1));
			msg.setUrl(rs.getString(2));
			msg_l.add(msg);
		}
		for (Msg msg : msg_l) {
			if(StringUtils.isNotBlank(msg.getUrl())){
				String xml = HttpClientUtils.sendGetRequest(msg.getUrl(), "UTF-8");
				XMLWriter writer = null;
				if (StringUtils.isNotBlank(xml)) {
					try{
						Document doc = DocumentHelper.parseText(xml);
						writer = new XMLWriter(new FileWriter("C:\\xmldata\\"+msg.getId()+".xml"));
						writer.write(doc);
					}catch(Exception ex){
						
					}finally{
						if(writer != null){
							writer.close();
						}
					}
				}
			}
		}
	}

	@Before
	public void setUp() throws Exception {
		String CLASSNAME = "com.mysql.jdbc.Driver";
		String URL = "jdbc:mysql://local:3306/database";
		String UNAME = "root";
		String PWD = "root";
		Class.forName(CLASSNAME);
		con = DriverManager.getConnection(URL, UNAME, PWD);
	}

	@After
	public void tearDown() throws Exception {
		if (rs != null) {
			rs.close();
		}
		if (pstmt != null) {
			pstmt.close();
		}
		if (con != null) {
			con.close();
		}
	}

	Connection con = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;

	class Msg {
		public Integer getId() {
			return id;
		}
		public void setId(Integer id) {
			this.id = id;
		}
		Integer id;
		String url;
		public String getUrl() {
			return url;
		}
		public void setUrl(String url) {
			this.url = url;
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值