您现在的位置是:主页 > news > 郑州定制网站建设/广告平台推广渠道
郑州定制网站建设/广告平台推广渠道
admin2025/4/21 10:24:33【news】
简介郑州定制网站建设,广告平台推广渠道,数字营销公司排行榜,适合国外网站的dns数据分析疫情图——day9一. 写入数据库二.Tomcat的安装和使用2.1 安装2.2 使用三.出现问题3.1 cmd和navicat数据库乱码 为 ?3.2 启动server出现端口问题好好学习,javaweb制作全国疫情展示,接下来要用java爬虫爬取数据,然后放到数据库…
数据分析疫情图——day9
- 一. 写入数据库
- 二.Tomcat的安装和使用
- 2.1 安装
- 2.2 使用
- 三.出现问题
- 3.1 cmd和navicat数据库乱码 为 ?
- 3.2 启动server出现端口问题
好好学习,javaweb制作全国疫情展示,接下来要用java爬虫爬取数据,然后放到数据库,以下是今天学习的知识(身体不舒服简单整理一下),
第一天:数据分析疫情图——day1
第二天:数据分析疫情图——day2
第三天:数据分析疫情图——day3
第四天:数据分析疫情图——day4
第五天:数据分析疫情图——day5
第五天:数据分析疫情图——day6
第五天:数据分析疫情图——day7
第五天:数据分析疫情图——day8
一. 写入数据库
我们在昨天也就是第八天已经创建了一个实体类province,并且设计了它的数据库,还有tomacat服务器的使用那么我们现在将爬取到的数据导入数据库中
需要导入的包
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;import cn.tedu.entity.Province;
import cn.tedu.util.JdbcUtil;
public class TestDataInsert {//集合ListList<Province> proList = new ArrayList<Province>();/*** 爬取数据:* province List<province>* */public List<Province> getInfo() {//1、要爬取的网站String url = "https://ncov.dxy.cn/ncovh5/view/pneumonia";//2、爬取出整个页面Document doc = null;try {doc = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36").get();//System.out.println(doc);} catch (IOException e) {e.printStackTrace();}String resultStr = doc.html();//System.out.println(result);//3、做数据的筛选String regex = "window.getAreaStat = (.*?)\\}(catch)";Pattern patt = Pattern.compile(regex);System.out.println(patt);Matcher matcher = patt.matcher(resultStr);//System.out.println(matcher);String result = "";if (matcher.find()) {result = matcher.group(1);//System.out.println(result);////数据的解析----------json数据//TODO..ObjectMapper mapper = new ObjectMapper();try {JsonNode jn = mapper.readTree(result);//System.out.println(jn);for (int i = 0; i < jn.size(); i++) {//创建对象Province pro = new Province();String provinceName = jn.get(i).get("provinceName").asText();int currentConfirmedCount = jn.get(i).get("currentConfirmedCount").asInt();int confirmedCount = jn.get(i).get("confirmedCount").asInt();int deadCount = jn.get(i).get("deadCount").asInt();int curedCount = jn.get(i).get("curedCount").asInt();System.out.println("地区:" + provinceName + ", 现存确诊:" + currentConfirmedCount + ", 累计确诊:" + confirmedCount + ", 死亡数:" + deadCount + ", 治愈:" + curedCount);pro.setProvinceName(provinceName);pro.setConfirmedCount(confirmedCount);pro.setCurrentConfirmedCount(currentConfirmedCount);pro.setCuredCount(curedCount);pro.setDeadCount(deadCount);//将爬取出来的数据,放到集合中去。proList.add(pro);//取出来数据JsonNode jn1 = jn.get(i).get("cities");//System.out.println(jn1);for (int j = 0; j < jn1.size(); j++) {String cityName = jn1.get(j).get("cityName").asText();int confirmedCount1 = jn1.get(j).get("confirmedCount").asInt();int currentConfirmedCount1 = jn1.get(j).get("currentConfirmedCount").asInt();int curedCount1 = jn1.get(j).get("curedCount").asInt();int deadCount1 = jn1.get(j).get("deadCount").asInt();System.out.println("城市:" + cityName + ", 现存确诊:" + currentConfirmedCount1 + ", 累计确诊:" + confirmedCount1+ ", 死亡数:" + deadCount1+ ", 治愈:" + curedCount1);}}} catch (IOException e) {e.printStackTrace();}}return proList;}@Testpublic void testInsert() {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;//使用jdbc将爬取出来的数据放到数据库中//jdbc获取连接--jdbcutilList<Province> proList = getInfo();try {conn = JdbcUtil.getConn();//传输器对象String sql = "insert into province values(?,?,?,?,?)";ps = conn.prepareStatement(sql);for (int i = 0; i < proList.size(); i++) {Province pro = proList.get(i);ps.setString(1, pro.getProvinceName());ps.setInt(2, pro.getCurrentConfirmedCount());ps.setInt(3, pro.getConfirmedCount());ps.setInt(4, pro.getDeadCount());ps.setInt(5, pro.getCuredCount());int rows = ps.executeUpdate();System.out.println("rows" + rows);}//结果集对象} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {//释放资源--jdbcutilJdbcUtil.release(conn, ps, rs);}}
}
二.Tomcat的安装和使用
2.1 安装
tomcat安装:以下是我老师博客连接,里面有详细教程
https://blog.csdn.net/weixin_43639180/article/details/107309531
2.2 使用
将javaweb项目放进去,就可以使用运行了
创建一个servlet
三.出现问题
3.1 cmd和navicat数据库乱码 为 ?
eciples在连接数据库这里添加:?characterEncoding=utf8
String url = "jdbc:mysql://localhost:3300/da01?characterEncoding=utf8";
cmd
可以查看以下三个连接的方法,我也是跟着一顿瞎操作弄好的,就是将数据库编码和eciples中的编码变成一样就行了
Java插入中文到数据库中文变成问号解决
修改表和字段的编码格式
中文乱码
到cmd中查看修改数据库的编码,以下是查看命令,发现character_set_database
是latinl,修改为utf8
show variables like '%char%' ;
SET character_set_database='utf8';
#查看数据表编码
show create table 数据表;
show variables like 'character_set_database';
navicat
如果navicat还是?,那么修改连接的编码为自动就可以了
外加小知识
创建表的时候记得加上utf8
列如:
CREATE TABLE `city` (`CityName` varchar(20) DEFAULT NULL,`Name` varchar(20) DEFAULT NULL,`CurrentConfirmedCount` int(11) DEFAULT NULL,`ConfirmedCount` int(11) DEFAULT NULL,`DeadCount` int(11) DEFAULT NULL,`CuredCount` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
或者去navicat数据表里面修改:
3.2 启动server出现端口问题
修改以下端口就好
Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process
以下是修改端口方法的连接:
https://www.php.cn/apache/463783.html