针对较大规模的数据,可以使用数据库(Database)进行存储。数据库是基于数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建、访问、管理、搜索和复制所存储的数据。目前,Oracle旗下的MySQL是最流行的关系型数据库管理系统,其具有体积小、性能高、开源免费等特点。
在使用MySQL之前,需要下载和安装软件。由于Windows系统中安装MySQL的过程都是通过界面化操作进行的、较为简单,因此不进行过多阐述。在MySQL安装完成后,可以下载一款轻量级管理和设计数据库的工具Navicat。(本次示例中所用的MySQL版本为:MySQL Community Server 5.7)
前期准备
1.安装MySQL软件以及Navicat软件。
2.MySQL安装完毕后,为了便于在命令提示行cmd中进行使用,需要在系统变量的Path中添加MySQL的安装位置。(如:C:\Program Files\MySQL\MySQL Server 5.7\bin)
数据库的基本概念
数据库:用于存放多个数据表,将数据存储到数据表之前必须先建立数据库。
数据表:存放于数据库中,类似于Excel表格。
列:字段或属性,一列存放的是相同字段的内容。
行:元素或记录。
主键:数据表的唯一索引。
索引:数据库某数据表中一个排序的数据结构,以协助快速查询、更新数据表中的数据。
联合主键:数据表中的多个字段作为该数据表的主键。
SQL语句基础
- 使用cmd命令提示行操作MySQL
1.连接数据库
在Windows系统的cmd或Linux环境中,连接数据库可使用如下命令:
mysql -u root -p
其中root表示用户,根据安装MySQL设置的用户名而定。输入此命令后,还需要输入密码才可登录。(如果出现提示没有mysql命令即为未配置好环境变量;如果出现错误:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)即为密码错误)
注意:连接进入数据库后,接下来输入的所有的命令都以“;”结束。
2.查看已有数据库及使用某数据库
在MySQL中,可能包含多个已经创建好的数据库,可通过以下命令查看和使用已有的数据库。
show databases; # 查看数据库
use crawler; # 使用数据库
3.创建新的数据库及数据表
在数据库创建完成后,可在数据库中进行建表。(如下图所示:在crawler数据库中创建carsales数据表,其中COMMENT用于解释说明某一字段,PRIMARY KEY用于标识主键)
注意:数据表名carsales和键名month、sales需要引上反斜点“`”!
4.查看数据库中的数据表
查看数据库中的数据表使用的是show命令。(如下图所示)
5.删除数据表
DROP TABLE carsales;
# 或
DROP TABLE IF EXISTS carsales;
6.向数据表中插入数据
INSERT INTO carsales VALUES ('2020-07-02', '500');
# 或
INSERT INTO carsales (month, sales) VALUES ('2020-07-02', '500');
7.查询数据表中的数据
# 查询所有数据
select * from carsales;
# 查询某列
select month from carsales;
8.更新数据库中的数据
update carsales set sales = '1000', month = '2020'; // 更改全部数据表值
update carsales set sales = '1000' where month = '2020'; // 基于month的值修改sales的值
9.删除数据表中的数据
delete from carsales where month = '2020'
JAVA操作数据库
过程模块
1.连接数据库
/**
* Java操作数据库的简单示例
*
* @author hakutaku
* @create 2020-07-02-10:10
**/
public class MySQLConnections {
private String driver = "";
private String dbURL = "";
private String user = "";
private String password = "";
private static MySQLConnections connection = null;
private MySQLConnections() throws Exception {
driver = "com.mysql.jdbc.Driver"; // 数据库驱动
dbURL = "jdbc:mysql://数据库ip地址:端口号/crawler"; // JDBC的URL
user = "用户名"; // 数据库用户名
password = "密码"; // 数据库密码
System.out.println("dbURL: " + dbURL);
}
public static Connection getConnection() {
Connection conn = null;
if (connection == null){
try {
connection = new MySQLConnections(); // 初始化连接
} catch (Exception e){
e.printStackTrace();
return null;
}
}
try{
// 调用Class.forName()方法加载驱动程序
Class.forName(connection.driver);
// 建立数据库连接
conn = (Connection) DriverManager.getConnection(connection.dbURL, connection.user, connection.password);
} catch (Exception e){
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection con = getConnection();
Statement stmt = null;
try