目录

  • 1Java操作数据库

    • java操作数据库第一种方法
    • java操作数据库的QueryRunner方法

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());}}
}

网络爬虫之java基础篇QueryRunner(Ⅲ)相关推荐

  1. 网络爬虫之Java基础篇(Ⅱ)

    目录 1集合操作 集合创建 集合数据的添加 集合的遍历 1.集合操作 集合创建 Set集合不可以放重复数据,List可以,Map主要存放的是键值对,其中key(主键)不可以重复. List<T& ...

  2. 网络爬虫之java基础(Ⅰ)

    目录 1Java中maven的使用 2log4j log4j的介绍 log4j提供的几种方法 使用步骤 3输入流与输出流 数据的读写程序以及map的使用 这张图为我给自己研究所人讲网络爬虫的一个流程, ...

  3. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  4. python实验总结与反思_警示与反思丨什么是Python网络爬虫?看这篇清晰多了!

    原标题:警示与反思丨什么是Python网络爬虫?看这篇清晰多了! 什么是爬虫? 网络爬虫(Web crawler),就是通过网址获得网络中的数据.然后根据目标解析数据.存储目标信息.这个过程可以自动化 ...

  5. [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. c#使用正则表达式获取TR中的多个TD_[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例...

    首先祝大家中秋节和国庆节快乐,欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都 ...

  7. [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. Android面试题Java基础篇

    Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...

  9. 《Java 后端面试经》Java 基础篇

    <Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...

最新文章

  1. 最小二乘GAN:比常规GAN更稳定,比WGAN收敛更迅速
  2. Tableau 绘制折线图
  3. python获取设备硬件信息_Python实现读取机器硬件信息的方法示例
  4. slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...
  5. 母版事件中注册javascript脚本
  6. golang ide 升级
  7. MyEclipse-6.5注冊码生成器源代码
  8. java二次指数平滑法预测未来的值
  9. POJ 3461 Oulipo
  10. Python深度学习三剑客,你集齐了吗?
  11. 解释PBR纹理贴图(texture-maps)
  12. 大数据可视化平台Demo
  13. 爬虫(19)pipline补充+item的讲解+古诗文案例
  14. 未群发消息接腾讯服务器吗,腾讯企业QQ(协同)如何设置并群发消息?
  15. 1463: [蓝桥杯2019初赛]年号字串 【水题】
  16. Codejock Xtreme ToolkitPro 静态链接XTP库以及皮肤库的使用
  17. 大学一级计算机字处理模拟题,大学计算机一级模拟操作题2
  18. Android分享文件到qq没反应,Android 微信,qq分享文件
  19. ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
  20. JS学习108-161

热门文章

  1. 容器编排技术 -- Kubernetes kubectl create secret tls 命令详解
  2. 当Spring 容器初始化完成后执行某个方法
  3. BGP——重分发注意点(总结+配置)
  4. Python项目中 封装日志模块logging 及快速调用方法
  5. Docker 制作自定义化的Tomcat镜像
  6. npm/yarn修改全局安装路径和缓存路径。。。
  7. C#LeetCode刷题之#686-重复叠加字符串匹配(Repeated String Match)
  8. react领域里面jsx中的style的值为什么放到了{}中
  9. 120_PowerBI堆积瀑布图_R脚本Visual
  10. 尚学堂java 参考答案 第七章