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

    xiaoxiao2025-01-25  8

    目录

    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()); } } }
    转载请注明原文地址: https://ju.6miu.com/read-1295771.html
    最新回复(0)