本文主要是介绍ESTA软件方向第二次培训,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
JDBC&爬虫入门
一、JDBC
1、什么是JDBC?
Java DataBase Connectivity,一种用于执行SQL语句的Java API
这次培训只演示Java执行mysql语句
2、首先了解一些mysql指令
(1)创建数据库
create database esta;//esta是数据库名
(2)删除数据库
drop database esta;
(3)使用该数据库
use esta;
(4)显示数据库中的表
show tables;
(5)删除表
drop table student;//student是表名
(6)创建表
create table student(
id int auto_increment primary key,//自动加编号的主键
name varchar(50), //varchar表示可变长度,存入数据是几个字节大小就占用几个字节大小,但超过设置的值时会被截断
sex char(20), //char(T)表示不可变长度,每个值都占用T个字节,如果长度小于T,mysql就会在它的右边以空格字符补足.
birthday varchar(50)
)default charset=utf8; //设置默认编码为utf-8
(7)插入数据
insert into student values(null,‘esta’,‘女’,’2000-10-2’);
(8)查询表中的数据
select * from student;//*表示选择所有
select id,name from student;//表示只选取id、name两列
(9)修改某一条数据
update student set sex='男' where id=1;//将主键为1的数据中的sex改为'男'
(10)删除数据
delete from student where id=1;//删除主键为1的这条记录
3、尝试使用命令行执行mysql指令
(1)打开上次培训时安装的xampp
(2)开启mysql服务(点击mysql对应的start)
(3)点击shell打开命令行
(4)输入命令:mysql -u root -p回车之后会让你输入密码,如果没有密码的话直接回车即可
(5)现在就可以开始运行2中的mysql命令了,实践一波。
4、用Java代码来替代命令行中对mysql的操作
(1)、开启数据库
先进行3中的(1)与(2)步,将数据库服务打开。
(2)、下载并解压jar包
官方下载链接:https://dev.mysql.com/downloads/connector/j/
(3)、导入jar包
(4)、编写代码
package ESTA;
import java.sql.*;import com.mysql.jdbc.PreparedStatement;public class esta_conncet {public static void main(String[] args){//连接对象Connection conn;//驱动String driver = "com.mysql.jdbc.Driver";//jdbc:mysql://localhost:3306/esta 为数据库eata的地址//?useUnicode=true&characterEncoding=utf8加上这个防止汉字乱码String addr = "jdbc:mysql://localhost:3306/esta?useUnicode=true&characterEncoding=utf8";//用户名String username ="root";//密码String password = "";try{//加载驱动Class.forName(driver);//建立连接conn = DriverManager.getConnection(addr, username, password);//判断是否连接if(!conn.isClosed()){System.out.println("连接成功");}Statement state = conn.createStatement();//创建表,sql为在数据库中创建表的命令语句,与2中的语句完全相同,不过因为字符串过长,用+连接String sql = "create table student("+"id int auto_increment primary key,"+"name varchar(50),"+"sex varchar(20),"+"birthday varchar(30)"+")default charset=utf8;";//state.executeLargeUpdate()方法用于运行mysql命令,如果成功即返回0if(state.executeLargeUpdate(sql)==0){System.out.println("创建成功");}//到这里为止,就已经在名为esta的数据库中创建了一个名为student的表//上面创建表时使用Statement对象来操作数据库,但Statement实现传参较为麻烦//并且速度效率和安全方面也不及Preparedstatement,//初学测试的时候可以用statement,但是以后使用尽量用PrepareStatement//Preparedstatement利用?(占位符)传参,下面插入数据使用Preparedstatement演示//PreparedStatement.setString(int arg0, String arg1)用于将占位符补齐,从而实现传参//arg0表示占位符的索引,表示要将占位符替换掉的参数String name = "esta";String sex = "male";String birthday = "2000";PreparedStatement pst = (PreparedStatement) conn.prepareStatement("insert into student values(null,?,?,?);");//获得一个PreparedStatement对象,并传入sql语句pst.setString(1, name);//占位符索引从1开始,用name替换第一个占位符pst.setString(2, sex);//用sex替换第二个占位符pst.setString(3, birthday);//用birthday替换第三个占位符pst.executeUpdate();//执行语句//到这里为止,就在student表中插入了一组数据(记录),尝试从从表中将这组数据提取出来//下面这个语句也与2中的插入语句一样//相信你们看到这里,已经知道jdbc事实上就是用Java来执行sql的命令,命令一模一样String sql_1 = "select * from student";//这条命令表示获取student表中的所有记录ResultSet rs = state.executeQuery(sql_1);//执行上面的命令,并将结果存入一个结果集中while(rs.next()){ //遍历所有记录System.out.print(rs.getInt("id")+" ");System.out.print(rs.getString("name")+" ");System.out.print(rs.getString("sex")+" ");System.out.println(rs.getString("birthday"));}pst.close();//使用完数据库一定要记得关闭连接state.close();conn.close();} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}
上面的代码实现了在数据库中创建一个表,在表中插入一组数据并从数据库中提取输出这组数据。但是Java可以对数据库进行的操作还有很多,比如更新一组数据、删除一张表等。实际操作起来也是像上面代码中那样用Java来执行mysql命令,所以只要熟练掌握了mysql的命令,那么用Java来操作数据库将是一件非常简单的事,多实践即可。
二、爬虫入门
1、安装python及pycharm
python下载地址:https://www.python.org/ftp/python/3.6.5/python-3.6.5.exe
安装时勾选 Add Python 3.6 to PATH
Pycharm下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
2、打开pycharm新建工程
3、导入相关库
requests库用于爬取 beautifulsoup用于解析
可以开启cmd,输入pip install [名称]下载导入 如:pip install requests
也可以在pycharm中点击File -> Setting ->Project:[工程名] -> Project Interpreter -> +号
搜索需要的库
点击 Install Package
4、获取必要的一些东西
尝试爬取河海大学官网主页面源代码,在写代码前,应该先观察一下要爬取网站的结构,打开要爬取的网站,快捷键Fn+F12(或win+F12)打开查看审查元素工具,点击Network
按F5刷新页面
点击Name这一列的第一个
在这里可以看到浏览器对网站进行访问时的headers,也就是浏览器的头,有了这个,网站服务器会在一定程度上把你的爬虫当成是浏览器。
拷贝Request Headers。
5、编写代码
右击pycharm中已建立的工程的Scripts文件夹,点击New ——> Python File ——>输入文件名,确定
import requests
from bs4 import BeautifulSoupclass spider(object):#创建一个spider类def __init__(self):#相当于Java中的构造函数self.headers = { #浏览器头,就是刚刚拷贝下来的,以键值对形式规范好,与Java中的map相似,在python中成为字典"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","Accept-Encoding":"gzip, deflate","Accept-Language":"zh-CN,zh;q=0.9","Cache-Control":"max-age=0","Connection":"keep-alive","Host":"www.hhu.edu.cn","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36"}def get_html(self,url):#创建一个爬起函数html = requests.get(url,headers=self.headers).text#爬取print(html)if __name__ == '__main__':spider = spider().get_html("http://www.hhu.edu.cn/")
因为时间关系,只是将获取到的html源代码输出了,没有演示BeautifulSoup的解析效果,ppt中提到的利用selenium实现自动登录的代码也没有演示,大家如果有兴趣的话可以随时找我们交流 esta_iot@163.com
这篇关于ESTA软件方向第二次培训的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!