java
Java基础,Java项目开发
晴雨相拥,同心逐梦
记笔记的地方,不要较真。。。
展开
-
Java学习笔记:工作自动化-案例:真题词频分析1
2、使用开源的英汉词典数据库ecDict来实现查询单词。yzk18/课程课件代码等/Part4/src/main/java/PDF词频统计.java。1、词频分析之前做过(Part4-2-案例对英语真题进行词频分析),只不过还差排序而已。1、词频分析之前做过(Part4-2-案例对英语真题进行词频分析),只不过还差排序而已。1、分析给定的一个考试的多个真题文档,然后进行词频分析,并且按照词频从高到低排序;1、把之前做过的词频分析代码复习一下,运行起来。2、按词频排序,用到Java的lambda的语法。...原创 2022-10-03 00:29:46 · 431 阅读 · 0 评论 -
Java学习笔记:工作自动化-案例:获取公司信息1
driver.findElement(By.xpath("//span[text()='地址']/following-sibling*[1]"));给定一个公司名字的列表,到“爱企查”中获取公司的地址、电话、注册资本等信息,导出到Excel文件。行为验证码的问题识别;没有登录,爬取的就是***。抓取其他信息代码同理。......原创 2022-10-03 00:21:17 · 391 阅读 · 0 评论 -
Java学习笔记:爬虫-Selenium高级操作
缺点对于复杂页面(ajax、表单数据校验、登录)处理比较麻烦,对于反爬的网站需要做报文头等的设置工作。优点程序的可控性强,不依赖于外部环境,容错性比较强,并发处理更灵活,适合于服务器端开发;4、假如必须用youzack.com,并且用Selenium。3、假如必须用youzack.com,并且用Jsoup。缺点依赖于外部环境,容错性较差,并发处理比较差,尽量不要再服务器端开发环境中使用;7、能用正规的接口就不要用爬虫,不仅是技术难度问题,而且有可能有法律问题。2、假如必须用有道词典,怎么做。...原创 2022-10-03 00:20:32 · 994 阅读 · 0 评论 -
Java学习笔记:基础SQL语句
1、不能让程序去自动往管理工具里填数据,程序需要通过SQL语句来读写数据库中的数据。我们先仍然在管理工具里执行SQL,以后可以在代码中执行SQL。2、SQL语句分为DDL、DML等。DML用来创建表、修改表等,一般可以可视化完成。比较运算符>,=,...原创 2022-10-02 00:05:48 · 593 阅读 · 0 评论 -
Java学习笔记:爬虫-操作动态网页的Selenium
爬虫入门容易,如果精通则需要是优秀的网站开发者(前端+后端)。Selenium可以自动启动一个浏览器、打开网页,可以用程序操作页面元素,也可以获得浏览器当前页面动态加载的页面元素。3、将chromeDriver放在chrome浏览器根目录下,它负责对Chrome浏览器执行自动化操作。有些网页内容是在浏览器端动态生成的,直接Http获取网页源码是得不到那些元素的。下载好,把文件放在你Chrome浏览器的同一级文件夹下。比如百度图片的图片是动态加载的。百度图片的图片是动态加载的。...原创 2022-10-02 00:04:43 · 1184 阅读 · 0 评论 -
Java学习笔记:爬虫-批量下载图片
我们获取到的是//pic1.ntimg.cn/pic/20220707/3282125_224930389102_4.jpg,并没有https,所有我们要手动加上。原来是在网页运行时,动态的覆给了他,实际上的是data-src=发现生成的图片src都是一样的查找错误。获取到第1页到20页的所有图片。这次覆给的就是正确的。...原创 2022-10-02 00:04:03 · 896 阅读 · 1 评论 -
Java学习笔记:爬虫-批量下载文章
需要Cookie等东西,需要学习JavaEE等服务器端开发的技术才能会用。前期的步骤,将连接和名称保存下来,接下来保存对应的网页,同时以名称为标题。方法是复制一篇文章的标题到源码中,看它存不存在,存在就是静态的。下载博客园的文章,首先我们要判断这个是静态还是动态。...原创 2022-10-02 00:03:40 · 706 阅读 · 0 评论 -
Java学习笔记:表间一对多关系
1、在“多”端的表中建立一个“字段”,这个字段指向“一”端的主键,这样在表间建立关系的字段又叫做“外键字段”,简称“外键”。初学者最好在外键字段上设置“外键约束”,这样,插入数据的时候,数据库会检查外键数据的合法性。1、两张表之间可以有关系,比如“一个人出版了多本书”、“一个父亲有多个孩子”。还有Left Join、Right Join等,可以自学。1)一对多:一个父亲有多个孩子,一个孩子只有一个父亲;2)多对多:一个老师有多个学生,一个学生有多个老师。2、常见的关系有一对多、多对多。原创 2022-10-02 00:02:52 · 672 阅读 · 0 评论 -
Java学习笔记:爬虫-用Jsoup解析网页
兄弟遍历方法siblingElements(),firstElementSibling(),lastElementSibling();Documentdoc=Jsoup.connect(“https//www.youzack.com/”).get();层级之间遍历parent(),children(),child(intindex)1、爬虫程序代替人的人工操作,自动获取网页内容,并且从其中提取出来有价值信息。3、Jsoup简单易用的Http请求操作以及查找元素的操作。......原创 2022-10-02 00:03:17 · 1892 阅读 · 0 评论 -
Java学习笔记:F12开发者工具
1、HTML中的图片一般并不直接放到HTML中,而只是img中src的一个路径,浏览器会通过路径发起单独的请求。好处网速慢的时候,网页先显示出来,图片加载。2、网页中部分内容是通过Dom(+Ajax)在浏览器端动态创建的,所以有的元素在源码中看不出来,但是F12+元素中能看出来。3、网络查看通讯过程;元素以树状结构查看HTML;右键的【检查】菜单。1、用途查看浏览器和服务器之间的通讯内容;更方便的查看页面的结构。2、打开方式F12或者其他。所有主流浏览器都支持。Java学习笔记HTML基础。...原创 2022-10-02 00:02:25 · 446 阅读 · 0 评论 -
Java学习笔记:HTML基础
1、服务器并不是把网页的图像传递给浏览器,而是给到一个HTML的文本文档,因为这样不仅节省流量,而且浏览器可以根据分辨率,设备等进行不同的图形渲染。2、用途:获取没有提供接口的网站中的数据。2、超链接是a,内部文本是超链接显示内容,href属性为超链接的网址,可以是相对路径,也可以是绝对路径,也可以是全网址。4、id是唯一的编号;4、网站内容一直在变,可能你看的时候的网站内容和讲课时候不一样了,学思想,而不是死记硬背。3、图片是img,src是图片的路径,可以是相对路径,也可以是绝对路径,也可以是全网址。原创 2022-10-02 00:01:56 · 257 阅读 · 0 评论 -
Java学习笔记:JDBC案例:收入流水分析
1、把“测试用的财务流水帐.xlsx”(自己建就行)导入系统。2、分析统计总收入和总支出。3、分析按类别统计收支总额。还可以绘制饼状图、折线图等。原创 2022-10-02 00:01:36 · 372 阅读 · 0 评论 -
Java学习笔记:JDBC的参数化查询(避免写的程序被黑客搞到手)
SQL注入漏洞SQL拼接把用户输入的恶意字符串拼接起来形成一个恶意的SQL。System.out.println("请输入用户名");System.out.println("登录成功");System.out.println("登录失败");System.out.println("请输入密码");需求要求用户输入姓名、密码,然后检查登录是否成功。打印SQL语句看一下就知道了。execute方法也支持参数化查询。就8行代码实现了这个SQL注入。密码输入'or'1'='1。原则尽量避免SQL拼接。...原创 2022-10-02 00:01:09 · 1225 阅读 · 0 评论 -
Java学习笔记:Java中访问数据库
3、准备连接字符串,代表要连接的数据库的地址、名称,比如SQLite的格式是jdbcsqlited/test/1.db,MySQL的格式是jdbcmysql//localhost3306/test1?比如SQLite是sqlite-jdbc,MySQL是mysql-connector-java。2、比如根据用户选择的条件,生成查询SQL,进行查询,并且把查询结果显示到图形化报表中。1、比如解析一个学生成绩的文本文件,然后插入数据库。1、创建对应的数据库、数据库表等。...原创 2022-10-15 00:25:53 · 2098 阅读 · 0 评论 -
Java学习笔记:MySQL数据库
3、SQL语法有国际标准,因此我们在SQLite中学到的SQL语法大部分在MYSQL中都是被支持的。4、Workbench是内置客户端,不好用,推荐用navicat8lite或者DBWeaver。5、演示基本的用法建数据库(相当于SQLite中的db文件)、建表、手动操作数据、执行SQL。1、什么情况下适合SQLite?什么情况下不适合SQLite?1、和SQLite不一样,MYSQL需要安装服务器。2、大型网站、大数据量等更适合MySQL。3、安装MYSQL服务器。...原创 2022-10-01 21:32:25 · 111 阅读 · 0 评论 -
Java学习笔记:表间多对多关系
并且在关系表中分别建立到两张表的外键字段。wheret.Name='马老师'3、录入数据查询一下。原创 2022-10-01 21:32:07 · 203 阅读 · 0 评论 -
Java学习笔记:限制查询条数及排重
名的学生”、“检索工资水平排在第3位到第7位的员工信息”、分页查询。快速生成多行,将查询到的结果又插入到新行中。从第2行(0开始)取最多3条数据。1、说“检索成绩排前三。从第二条开始获取4条。原创 2022-10-01 15:32:19 · 290 阅读 · 0 评论 -
Java学习笔记:高级数据过滤
2、因此想要获取Salary为NULL的,不可以select*fromT_PersonswhereSalary=NULL。1、没有添加非空约束列是可以为空值的(也就是NULL),NULL代表“不知道”,NULL和任何数据的结算结果都是NULL。也可以SELECTAge,NameFROMT_PersonsWHEREAgein(23,25,28)3、需要用IsNULL、isnotNULL来判断。3、名字中包含“中”的。2、名字以ke结尾的。...原创 2022-10-01 15:29:43 · 538 阅读 · 0 评论 -
Java学习笔记:SQL数据排序
先按照Age排序,对于Age相同的,再按照Salary排序。ASC(默认,可省略)升序;允许指定多个排序列,各个列之间使用逗号隔开即可。原创 2022-10-01 15:29:10 · 300 阅读 · 0 评论 -
Java学习笔记:SQL数据库汇总与分组
1、数据分为多个逻辑组,从而可以对每个组进行聚合运算。SQL语句中使用GROUP BY子句进行分组,使用方式为“GROUP BY 分组字段”。2、五个汇总函数(聚合函数) :MAX(最大值)、MIN (最小值) 、AVG (平均值) 、SUM (总和) 、COUNT(个数)。2、没有Group By的聚合函数就是把整个查询结果作为一组。中的最低工资、统计工资大于 3800 元的员工的平均年龄。1、统计员工总数、统计年龄大于 25 岁的员工。也可以用其他聚合函数。原创 2022-10-01 15:28:24 · 563 阅读 · 0 评论 -
Java学习笔记:SQLite数据库
推荐用SQLiteStudio(免费)、NavicatforSqlite(收费)。1、数据库管理系统有很多品牌SQLite、MySQL、MSSQLServer、PostgreSQL、Oracle等。2、SQLite是最简单的流行数据库,不同于其他DBMS,它是文件数据库,不需要“服务器”。4、常用数据类型INTEGER(整数);1、要使用SQLite,先要创建数据库文件,数据都存在这个db文件中,然后再创建数据表。1、新建db文件,创建表、定义列,主键一般名字是Id,定义为“自增”。...原创 2022-10-01 15:27:46 · 1081 阅读 · 0 评论 -
Java学习笔记:数据库是什么
两张“数据库表”之间可以由关系,比如“请假单”这张表中可以有指向“老师表”、“学生表”的列。如果用“姓名”,那么就存在着重名等问题,用“学生编号”也有各种问题导致“编号重复”的可能性。所以最好使用一个独立的、无意义的“主键”唯一标识一行。2、一个“数据库”相当于一个Excel文件,一个“数据表”相当于一个Sheet,每个“数据表”定义了多列,一个“数据表”由多行。1、我们用的经典的数据库是“关系数据库”,不同类型的数据放到不同的“表”中,表之间通过关系来关联。3、数据列类型,不同的列可以放不同类型的数据。原创 2022-10-01 15:26:04 · 451 阅读 · 0 评论 -
Java学习笔记:案例:优化那坨复杂的代码
把一个函数(方法)的行数降低到一屏之内方法:定名字,定参数(函数无法内部确定的值),定返回值,写方法体import com.yzk18.docs.ExcelHelpers;import com.yzk18.net.MailSender;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;public class 计算个税并发送邮件2 { private s.原创 2022-02-12 19:43:25 · 126 阅读 · 1 评论 -
Java学习笔记:案例发送工资条到邮箱
上次完成到将个人所成税算了出来现在要发送工资条到邮箱定位到员工信息表,读取他对应的邮箱,发送邮箱准备工作完成package Part4;import com.yzk18.docs.ExcelHelpers;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;public class 计算个税并发送邮件1 { public stati.原创 2022-02-12 18:55:10 · 939 阅读 · 0 评论 -
Java学习笔记:案例:计算发送工资条
应纳税所得额=基本工资+绩效工资+奖金+考勤罚款+社保-5000个税=应纳税所得额*税率-速算扣除数1、应纳税所得额<=3000 税率=0.03; 速算扣除数=0;2、应纳税所得额>3000且 <=12000 税率=0.1; 速算扣除数=210;3、 应纳税所得额>12000且 <=25000 税率=0.2; 速算扣除数=1410;4、应纳税所得额>25000且 <=35000 税率=0.25;...原创 2022-02-12 12:14:20 · 630 阅读 · 1 评论 -
Java学习笔记:通过Java发送邮件
邮件发送基础1、发送邮件要连接自己邮箱的Smtp服务器,然后提供用户名(一般都是邮箱全名)、密码(大部分邮件提供商都要求用不同于登陆密码的【授权码】来代替,避免泄密)2、大部分普通邮箱都不能高频的、随意发内容。如果有大量正规内容需要发送,需要购买企业邮箱、Edm服务邮箱。邮箱设置1、我测试用126邮箱,其他邮箱操作都差不多。2、如何启用smtp支持,如何设定授权码(后续代码中用授权码当密码,而不是登陆用的密码)。具体取决于使用的邮箱,有一些企业邮箱没有授权码的概念。126邮箱原创 2022-02-11 15:43:11 · 576 阅读 · 0 评论 -
Java学习笔记:公司账目流水表生成报表2
上次完成了月份,学费输入总额等现在我们要根据这些数据生成Word表package Part4;import com.yzk18.docs.ChartFromArrayBuilder;import com.yzk18.docs.ExcelHelpers;import com.yzk18.docs.WordHelpers;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel..原创 2022-02-10 19:38:02 · 738 阅读 · 0 评论 -
Java学习笔记:公司账目流水表生成报表1
package Part4;import com.yzk18.docs.ExcelHelpers;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;public class 公司流水表生成Word报表 { public static void main(String[] args) { Workbook wb = ExcelHelpers.op...原创 2022-02-10 17:04:38 · 803 阅读 · 0 评论 -
java保留两位小数4种方法
方法一:String的format方法(推荐)double f = 111231.5585;System.out.println(String.format("%.2f", f));方法二:DecimalFormat的format方法double f = 111231.5585;DecimalFormat df = new DecimalFormat("#.00");System.out.println(df.format(f));以下内容了解即可,可以不用看方法三:BigDe转载 2022-02-10 16:59:57 · 34852 阅读 · 0 评论 -
Java学习笔记:Word中创建图表如此简单
用法Word中创建图表的方式是一样的。XWPFChart chart = WordHelpers.createChart(doc,500,300);XWPFChart和XSSFChart一样都是继承自XDDFChart的,因此同样可以用chartBuilder构建数据,然后填充的。ChartFromArrayBuilder等都可以用。 案例:把Excel中的那两个案例再用Word实现一遍。package Part4;import com.yzk18.commons.De原创 2022-02-09 20:34:47 · 1954 阅读 · 3 评论 -
Java学习笔记:案例:计算公司财务报表
需求说明“公司账目2021年.xlsx”,计算每个月的学费收入的波动图。package Part4;import com.yzk18.docs.ChartFromArrayBuilder;import com.yzk18.docs.ExcelHelpers;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermod原创 2022-02-09 18:41:39 · 838 阅读 · 0 评论 -
Java学习笔记:案例:疫情数据生成图表
需求说明从网上找到各国疫情数据,保存到Excel、txt等,然后分析10个主要国家的疫情,分别形成条形图、饼状图。 我目前用到的页面:https://www.bitpush.news/covid19/ 如果访问不了,就自己找别的数据源。 以后还可以学习爬虫技术自己抓取数据。我先复制一些试试看效果是这样的,我在调一下,太不明显了。边距存在一定bug,毕竟网上人家几千行代码调整细节,而这个就四十多行就解决。package Part4;import com.yzk18.c原创 2022-02-09 17:49:16 · 953 阅读 · 0 评论 -
Java学习笔记:从表格数据创建Excel图表
package Part4;import com.yzk18.commons.DesktopHelpers;import com.yzk18.docs.ChartFromCellRangeBuilder;import com.yzk18.docs.ExcelHelpers;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.a...原创 2022-02-08 18:59:23 · 476 阅读 · 0 评论 -
Java学习笔记:从数组数据创建Excel图表
主要概念XSSFChart是代表Excel中的图表对象。 ChartBuilder是用于向XSSFChart中填充数据的构建器,有很多子类:1) ChartFromArrayBuilder用于从一个固定的数组来创建数据;2) ChartFromCellRangeBuilder用于从一个Excel表指定范围来创建数据;创建ChartXSSFChart chart = ExcelHelpers.createChart(sheet,0, 5, 7, 26);//在sheet上创建一个图表对象,原创 2022-02-08 18:19:53 · 2523 阅读 · 1 评论 -
Java学习笔记:统计视频播放量
先不考虑爬虫技术。复制内容到TXT文件中package Part4;import com.yzk18.commons.IOHelpers;public class 统计视频播放量 { public static void main(String[] args) { String[] lines= IOHelpers.readAllLines("D:\\temp\\视频播放量.txt"); int sum=0;//总次数 for .原创 2022-02-07 19:27:59 · 2568 阅读 · 0 评论 -
Java学习笔记:Excel文件合并
完成代码package Part4;import com.yzk18.commons.IOHelpers;import com.yzk18.docs.ExcelHelpers;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache...原创 2022-02-07 18:43:17 · 495 阅读 · 0 评论 -
Java学习笔记:根据Excel工资表生成工资条
需求1、一个Excel工资文件,每个Sheet是一个部门,每个部门都有员工的姓名、编号、基本工资、考勤扣款、奖金,然后生成每个员工一个工资条word文件,文件名为【部门名+姓名+员工编号】。 2、允许用户选择文字文件以及保存文件夹。package Part4;import com.yzk18.docs.ExcelHelpers;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;原创 2022-02-07 16:39:34 · 1151 阅读 · 0 评论 -
Java学习笔记:使用Word模板简化文件创建
Word格式说明1、研究WordTemplateRenderer的使用。2、Word中其实有更专业的“模板”功能,但是对于普通Word用户来讲操作太复杂了。所以这个类使用的普通占位符。3、演示基本使用。很多Word用户就是把Word当成记事本在用,格式化、项目符号等全部手动搞定。把Excel当成一个普通行列的表格用。其实如果研究深入一点,会发现非常好用的。我写论文的经历聊聊。工欲善其事必先利其器!但是我们不能要求SB用户。adapted from: https://blog.csdn.n原创 2022-02-06 21:23:25 · 366 阅读 · 0 评论 -
Java学习笔记:PDF转Word
需求把一个普通的PDF文件(可能含有图片)转换为Word格式。原创 2022-02-06 13:39:02 · 627 阅读 · 2 评论 -
Java学习笔记:Word文档的读写
不变样式就是run,段落是XWPFParagraphstatic org.apache.poi.xwpf.usermodel.XWPFPicture addPicture(org.apache.poi.xwpf.usermodel.XWPFDocumentdoc, byte[]pictureData) 向Word文档对象doc中增加一张图片,用图片的默认尺寸显示。 static org.apache.poi.xwpf.usermodel.XWPFPicture ...原创 2022-02-05 16:20:30 · 1528 阅读 · 2 评论