DataLearner 标志DataLearnerAI
最新AI资讯
大模型排行榜
大模型评测基准
大模型列表
大模型对比
资源中心
工具
语言中文
DataLearner 标志DataLearner AI

专注大模型评测、数据资源与实践教学的知识平台,持续更新可落地的 AI 能力图谱。

产品

  • 评测榜单
  • 模型对比
  • 数据资源

资源

  • 部署教程
  • 原创内容
  • 工具导航

关于

  • 关于我们
  • 隐私政策
  • 数据收集方法
  • 联系我们

© 2026 DataLearner AI. DataLearner 持续整合行业数据与案例,为科研、企业与开发者提供可靠的大模型情报与实践指南。

隐私政策服务条款
  1. 首页/
  2. 博客列表/
  3. 博客详情

网络爬虫之java基础篇QueryRunner(Ⅲ)

2016-09-08 22:10:02
2,845 阅读
Java数据库网络爬虫

原文地址:http://blog.csdn.net/qy20115549/article/details/52201766

目录

#1、Java操作数据库 如何将爬虫爬取的数据存储下来也是我们关注的问题之前,常用的存储方式有.txt,mysql,hbase等。前面已经介绍了Java输入流输出流操作文本的方式,现在主要介绍几种Java操作mysql的方式。 ##java操作数据库第一种方法 这种方法,是操作数据库的最简单,也是最原始的方法。

package crawlerTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MysqlConnectionTest {

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Connection connection=null;           //数据库连接的获取
		Statement stmt=null;                    //创建Statement对象
		ResultSet rst=null;                 //创建数据库执行对象
		String driver="com.mysql.jdbc.Driver";   //数据库驱动
		String dbURL="jdbc:mysql://127.0.0.1:3306/test";  //操作的数据库地址,端口及库名
		String user = "root"; //数据库用户名
		String password = "112233"; //数据库密码
		Class.forName(driver);            //驱动注册

		try {
			connection = DriverManager.getConnection(dbURL,user,password);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		//连接数据库
		stmt = connection.createStatement();
		String sql="select * from auto_forum_comments limit 1,100"; //需要查询的语句
		rst=stmt.executeQuery(sql);
		while (rst.next()) {
			System.out.println(rst.getString(6));              //取第6列数据

		}
		rst.close();
		stmt.close();
		connection.close();
	}

}

##java操作数据库的QueryRunner方法 QueryRunner是apache下面的开源操作数据库的工具,其是一款非常实用的操作数据库的工具,也是本人最常用的一种工具。其中包括batch()、update()、insert()等常用数据操作方法,下面我通过具体的程序来说明这些方法。 首先,我们要创建一个对象类(model),用来封装对象。如下图所示,为我们在model下建的两个类。其中Address类为本案例所用的类,主要用来封装数据库中的数据(我们需要操作的数据表),如下图所示。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

package model;

public class Address {
	private String addr_id;
	private String addr_car;
	private String addr_url;
	private String addr_forum;
	private String craw_time;
	//在ecliplse中使用快捷键, shift+alt+s快捷生成set、get方法
	public String getAddr_id() {
		return addr_id;
	}
	public void setAddr_id(String addr_id) {
		this.addr_id = addr_id;
	}
	public String getAddr_car() {
		return addr_car;
	}
	public void setAddr_car(String addr_car) {
		this.addr_car = addr_car;
	}
	public String getAddr_url() {
		return addr_url;
	}
	public void setAddr_url(String addr_url) {
		this.addr_url = addr_url;
	}
	public String getAddr_forum() {
		return addr_forum;
	}
	public void setAddr_forum(String addr_forum) {
		this.addr_forum = addr_forum;
	}
	public String getCraw_time() {
		return craw_time;
	}
	public void setCraw_time(String craw_time) {
		this.craw_time = craw_time;
	}

}

接着我们创建封装数据库,用户名及密码的类,如下图所示。

这里写图片描述
这里写图片描述

package db;

import javax.sql.DataSource;

import org.apache.commons.dbcp2.BasicDataSource;

public class MyDataSource {

	public static DataSource getDataSource(String connectURI){

		BasicDataSource ds = new BasicDataSource();
		ds.setDriverClassName("com.mysql.jdbc.Driver");
		ds.setUsername("root");
		ds.setPassword("112233");
		ds.setUrl(connectURI);
		return ds;

	}
}

下面表示写操作数据库语句了

package crawlerTest;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import model.Address;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import db.MyDataSource;

public class QueryRunnerTest {
	static final Log logger = LogFactory.getLog(QueryRunnerTest.class);
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		/****** 所要操作的数据库******/
		DataSource ds = MyDataSource.getDataSource("jdbc:mysql://127.0.0.1:3306/test");
		QueryRunner qr = new QueryRunner(ds);
		ResultSetHandler<List<Address>> h = new BeanListHandler<Address>(Address.class);
		/****** 执行sql语句获取数据******/
		List<Address> CarData = qr.query("SELECT addr_id,addr_car FROM auto_forum_comments", h);
		/****** 遍历输出数据******/
		for (Address car:CarData) {
			logger.info("CarId:"+car.getAddr_id()+"\tcarName:"+car.getAddr_car());
		}
	}
}

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码
返回博客列表

相关博客

  • 2022年了,Java和Java的生态怎么样了?
  • Java中自增操作i++与++i的区别
  • Java类型转换中valueOf方法和parseInt方法的区别
  • 《Effective Java 第三版》笔记之七 消除过期的对象引用
  • 《Effective Java 第三版》笔记之六 避免创建不必要的对象
  • Java入门基础笔记-11
  • Java入门基础笔记-10
  • Java入门基础笔记-9

热门博客

  • 1Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)
  • 2回归模型中的交互项简介(Interactions in Regression)
  • 3贝塔分布(Beta Distribution)简介及其应用
  • 4矩母函数简介(Moment-generating function)
  • 5普通最小二乘法(Ordinary Least Squares,OLS)的详细推导过程
  • 6使用R语言进行K-means聚类并分析结果
  • 7深度学习技巧之Early Stopping(早停法)
  • 8手把手教你本地部署清华大学的ChatGLM-6B模型——Windows+6GB显卡本地部署