自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anthony_tester的博客

公众号:AnthonyTestDevHouse,探索从QA角色到开发角色的转换之路(Q群574103281)

  • 博客(47)
  • 收藏
  • 关注

原创 JavaWeb学习-案例练习-图书管理后台-7-批量删除的JS实现

前面一篇完成了全选的实现过程,很自然地,我们就想接着去实现全部删除如何实现。批量删除有两种实现,第一种是JS,第二种是以提交表单的方式,这篇来看看JS方式如何实现。1.需求分析当然页面是这样的我们肯定不能在全选之后,点击上面红圈中任何一个X来进行批量删除,那么这个批量删除的如何实现呢,思路如下:我们在每行的checkbox这个元素上,通过value=book.id 这种方式,把...

2019-06-30 00:11:42 1418

原创 JavaWeb学习-案例练习-图书管理后台-6-全选思路和实现过程

在我们之前的案例中,在list.jsp,查看商品的表格中是没有全选按钮的,我们删除图书,只能一个一个删除,如果考虑到批量删除呢,所以我们需要新增全选/全不选按钮。1.需求需要像红圈那样添加勾选按钮,点击全选,或者批量勾选,我们可以同时删除多本书籍。2.添加全选思路分析我们先利用前端知识,给商品编号前面添加一列,控件的type类型为checkbox.打开list.jsp...

2019-06-29 22:31:06 482

原创 数据结构和算法-17-二叉树的广度优先遍历和二叉树节点插入操作

这篇来用代码实现一颗二叉树,在实现二叉树之前,我们需要分析,如何给一棵树添加元素,添加的规则,其实先要查找和判断节点,查找和判断节点的过程,我们使用了广度优先遍历方法。1.二叉树的广度优先遍历先摆放一颗二叉树思路1,我们先要构造一个个节点,节点我们前面使用过,Node, 这里也一样,只不过这个节点属性,除了一个元素,还有一个左子节点和右子节点这两个属性。例如构造A节点,元素存储是A...

2019-06-28 22:34:49 777

原创 JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能

继续来做案例练习,本篇学习如何删除图书,也就是在list.jsp页面的图书列表中,点击删除按钮,这条图书记录信息就从列表消失,然后相当于刷新当前页面,列表就少了一条图书记录。1.需求场景例如把Python入门这本书删除。2.思路分析还是画一个图,和前面一样。红圈就是我们本篇的内容,简单来说,点击删除这个链接,需要把该图书的id传进去,然后跳转到一个delBookS...

2019-06-27 23:11:46 2657

原创 数据结构和算法-16-树和二叉树的概念

这篇开始学习树这种数据结构,二叉树肯定听说过,还有什么红黑树,在JDK 1.8中HashMap就采用了红黑树实现。在学习这种数据结构算法之前,看看树的概念和分类。1.树的概念树(tree)是一种抽象数据类型(ADT)或是视作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一颗...

2019-06-27 20:50:14 449

原创 JavaWeb学习-案例练习-图书管理后台-4- 完成图书修改功能

继续来做Javaweb的案例练习,本篇学习如何修改一本书的信息。在图书列表页,表格中点击某一本书的编辑链接,然后用户就可以修改图书信息,就是这么一个场景。1.修改思路分析首先,来看看修改图书的思路分析,要如何跳转,用几个servlet,都在下图看这张图左边部分,首先用户在list.jsp中点击修改菜单,这个时候需要把图书的id传给findBookByIdServlet,然后根...

2019-06-26 23:32:27 2082 1

原创 数据结构和算法-15-二分查找

前面学习了六种排序算法,接着学习搜索,搜索中使用最多一种简单查找方法就是二分查找。二分查找的特点是,先保证数列是有序排序,然后每次查找可以减少一半的范围,直到查到或者找不到目标元素为止。这个也是经常在面试中被要求手写这个查找代码,接着要你设计测试用例去测试你写的代码。1.二分查找定义二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好。其缺点就是要求待查表为有序表,且插入删...

2019-06-26 15:16:03 1443

原创 数据结构和算法-14-归并排序

前面一篇快速排序用到了递归,接下来的归并排序也需要使用递归思想。1.归并排序介绍归并排序(MergeSort)是才有分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小先把谁取出来,取了之后相应的指针往后移一位,然后再比较,直到一个数组为空,最后把另外一个数组的剩余部分复制过来即可。...

2019-06-25 16:38:13 341

原创 JavaWeb学习-案例练习-图书管理后台-3- 完成图书添加功能

这篇我们来实现添加一个图书功能,前面一篇是显示图书列表。一般的逻辑是,在添加页面,提供用户输入的表单,用户确认填写,点击提交,然后返回到列表,列表可以显示多了一条数据进来了。ddd1.图书添加功能的思路分析分析一下,思路应该是这样的。主要是提醒,在BookAddServlet中应该往BookListServlet跳,而不是直接往list.jsp跳。2.完成添加图书代...

2019-06-24 22:50:42 2436

原创 数据结构和算法-13-快速排序

这篇来学习下快速排序,快速排序是对冒泡排序的一种改进算法。1.快速排序定义快速排序(QuickSort),又称划分交换排序,通过一趟排序将要排序的数据分割成独立的两部分。其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按照此方法对两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.快速排序思想和图解快速排序步骤为:1.从数...

2019-06-24 21:33:36 636

原创 数据结构和算法-12-希尔排序

这一篇来学习希尔排序,希尔排序是直接插入排序的一种优化算法。1.希尔排序概念希尔排序(shell sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法,该方法因DL.Shell于1959年提出而得名。希尔排序是把纪录按下标的一定增量分组,对每组使用直接插入排序算法排序。随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整...

2019-06-24 21:11:46 479

原创 数据结构和算法-11-插入排序

继续学习简单排序算法中的第三种:插入排序,其实插入排序和选择排序很容易搞混淆。1.插入排序概念和原理插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素进行逐步向后挪位,为最新元素提供插入空间。2.插入排序图解...

2019-06-22 23:29:57 439

原创 数据结构和算法-10-选择排序

接着学习简单排序算法的第二种,叫选择排序。1.选择排序定义和优点选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是这样的:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序系列的末尾。依次类推,直到所有全是均排序完毕。选择排序主要优点与数据移动有关。如果某个元素位于正确的最终...

2019-06-21 20:11:00 630

原创 数据结构和算法-9-冒泡排序

开始学习最简单的几个排序算法,学习完排序算法,就要学习二叉树。其实我曾经也想到过去刷题,但是我看一下题目之后,我还是觉得很有必要回来复习下数据结构和算法的入门基础知识。冒泡排序很重要,特别是对于测试人员,很多公司不能拿太复杂的算法去考察测试人员,冒泡就成了大概率要会写的代码。1.什么是冒泡排序冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素...

2019-06-21 13:34:48 781

原创 JavaWeb学习-案例练习-图书管理后台-2- 数据表创建和完成列表显示功能

现在,我们对着浏览器,打开这个图书管理系统的页面,或者打开admin/product/add.jsp,通过里面的字段,我们可以参照这些name的值去创建数据库表,表的名称就是book。1.数据库表的创建CREATE TABLE book( id VARCHAR(50) PRIMARY KEY, NAME VARCHAR(50), price DOUBLE, pnum INT, ...

2019-06-19 21:36:13 1260

原创 JavaWeb学习-案例练习-图书管理后台-1- 环境搭建

前面文章学习了DBUtils这个框架,现在来一个案例练习,在使用这个DBUtils框架基础上,做一个图书管理系统后台的数据的增删改查操作。这个图书管理系统部分是前端开发人员其他做好了一些静态页面,具体案例材料,我会分享到百度网盘,也可以群里找我要。1.环境准备新建一个Java动态web项目,然后拷贝导入相关jar包。素材文件夹资料:把这些文件全部拷贝到Eclipse项目的WebC...

2019-06-18 21:05:32 1258 1

原创 JavaWeb学习-Spring框架-11-Spring aop开发-导包和定义通知和配置织入对象

在开始AOP编程之前,我们前面介绍了几个aop名词,很生涩,不好理解,没办法,我们只能从实际操作去理解和体会每一个名词对应的动作。本篇练习的具体步骤1.导入包2.准备目标对象3.准备通知4.配置进行织入,将通知织入目标对象1.导入包com.springsource.org.aopalliance-1.0.0.jarcom.springsource.org.as...

2019-06-17 19:58:29 430

原创 数据结构和算法-8-双向链表

这篇来学习一个更复杂的数据结构,双向链表,我们在前面单向链表知识基础上,来分析和看看在双向链表中相关方法的实现1.双向链表定义一种更复杂的链表是“双向链表”,每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。2.操作方法is_empty() 链表是否为空length()链表长度t...

2019-06-14 22:41:55 370

原创 数据结构和算法-7-单向循环列表

前面一篇介绍了单链表,这个单链表是基础,这篇我们来看看单链表的变种,单向循环链表,和前面唯一的区别就是列表最后一个节点指向头节点,形成一个环形。1.单向循环列表单链表的一个变型是单向循环链表,链表中最后一个节点的next域不再为Node,而是指向链表的头节点,形成一个环。2.代码实现还是前面单链表的大部分方法的实现代码,先来看看头部插入元素和尾部插入元素,链表长度,判断为...

2019-06-14 14:35:36 1374

原创 数据结构和算法-6-链表和单链表的实现过程

这篇来学习单链表的结构和代码实现过程,重点要理解节点Node这个class的含义,一个节点包含两部分组成,数据和存储下一个节点的内存地址。1.链表的定义链表的定义链表(linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。上图就是一个单链表的表示。2.单...

2019-06-13 23:21:00 536 1

原创 数据结构和算法-5-队列和双端队列

前面一篇我们用了顺序表实现了栈和相应方法,这篇我们来看看队列和双端队列的实现。1.队列还是用顺序表方式来实现一个队列,队列的特点就是尾部添加元素,头部删除元素,就是生活中排队的例子。Python实现过程# encoding:utf-8class Queue(object): """队列""" def __init__(self): s...

2019-06-13 19:23:37 1703

原创 JavaWeb学习-Spring框架-10-Spring aop思想和原理和一些名词解释

开始进入aop编程学习,Spring 中aop(Aspect-oriented programming 切面编程)是指Spring提供了aop编程的支持。aop是一种思想,叫切面编程,本篇简单学习下aop思想和aop技术实现原理。在具体学习aop之前,我们需要了解几个aop领域地名词含义。1.aop思想aop思想,总结来说就是八个字:横向重复,纵向抽取。 下面这个图来理解这八个字。...

2019-06-13 13:40:41 294

原创 JavaWeb学习-Spring框架-9-Spring和Junit整合

前面我们在用Junit测试Spring对象的时候,有一个问题,就是这个对象获取需要在每个方法中都写一遍,这样很麻烦,开发人员看到重复代码就想重构,但是光在Junit中行不通的。为了解决这个问题,Spring整合了Junit,在前面导包基础上,我们再需要导入一个包就能做Spring和Junit整合的事情。1.问题场景package com.anthony.test; import...

2019-06-11 20:26:47 292

原创 JavaWeb学习-Spring框架-8-Spring工具介绍之STS插件

这篇来学习一个插件,这个插件叫STS,全称是Spring Tool Suite,就是Spring工具套件包。有了这个,我们在Spring开发中很多技巧帮助我们少敲代码。1.使用场景介绍在我们在xml配置文件的时候在写class全称的时候,多么希望写一个Car,然后alt+/ 就能弹出提示,这个sts插件就能解决这个问题。当然这个插件还有很多功能,以后学习多了看看会用到...

2019-06-11 20:26:37 742

原创 JavaWeb学习-Spring框架-7-使用注解代替xml配置

继续学习Spring框架,前面我们都是使用xml配置文件,这篇开始,我们学习如何使用注解方式去代替xml配置文件。注解我们多多少少接触过,例如在junit写单元测试用例这个@Test就是一个注解,在软件工程工程中一般@开头都是注解,JDK1.5开始引入注解这个功能。1.环境准备新建一个动态web项目,然后把导包,把前面bean对象和配置文件拿过来。这两个Bean对象代码可以看这篇文章。...

2019-06-11 19:24:04 935 1

原创 JavaWeb学习-Spring框架-6-Spring属性注入之复杂对象注入

前面我们介绍了四种注入方式,都是在介绍单个值得注入,没有遇到复杂对象,那个car对象不算。今天来看看如果属性是数组,列表,Map和Properties如何注入。1. 文件准备还是前面的injection包下新建一个CollectionBean类,里面有一个Demo1.java和一个配置文件2.数组类型注入先来看看CollectionBean.java代码内容pack...

2019-06-10 20:22:11 301

原创 JavaWeb学习-Spring框架-5-Spring配置详解之模块化配置和Spring属性注入

继续学习Spring相关配置的知识,本篇第一个知识点来学习下模块化配置,了解一个根目录下xml配置文件如何配置管理多个模块下的子配置文件。然后学习spring中的bean对象的四种注入方式,主要掌握set方法注入和构造方法注入。1.模块化配置在Spring中需要管理很多对象,可能几百个,我们有时候方便,一个模块写一个xml配置文件,然后在src根目录下有一个总的application...

2019-06-09 22:11:47 477

原创 JavaWeb学习-Spring框架-4-Spring配置详解之Bean元素之scope属性和生命周期方法

在前面学习JSP的9个内置对象的时候,我们设置属性,其中有一个参数就是可以设置属性范围,这个属性可以选择4个域对象范围。本篇来学习Spring中bean对象的scope属性,这个属性前面我们没有介绍到,因为这个属性有一个默认值。1.scope属性取值scope主要有4个取值,前面两个需要掌握,后面两个了解一下就可以。singletonprototyperequestse...

2019-06-08 21:06:14 398

原创 JavaWeb学习-Spring框架-3-Spring配置详解之Bean元素和三种对象的创建方式

这篇开始,我们陆续来学习Spring中的配置项详解,来介绍第一篇中的hello world级别程序中xml文件中的注解。Spring最麻烦的就是各种注解,包括以后Springboot也是各种注解。1.Bean元素注解关于Bean元素注解,我们前面使用了这个配置,在applicationContext.xml文件中<!-- 将User对象交给Spring容器管理 --&gt...

2019-06-07 23:20:49 421

原创 数据结构和算法-4-栈和队列

这篇来学习什么栈和队列,以及栈和队列的基本特征,然后代码实现栈的实现1.栈栈(stack)也有叫堆栈,是一种容器,可存入数据元素,访问元素,删除元素,它的特点在于只能允许容器的一端(称为栈顶端,top)进行加入数据(push)和输出数据(pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认访问顺序。由于栈数据结构只允许一端进行操作,因...

2019-06-07 11:01:30 504

原创 数据结构和算法-3-顺序表

这篇来学习下顺序表和顺序表在内存中的结构和顺序表的简单操作。顺序表是其他封装的数据结构的基础,了解这个之后,我们开始来学习常见数据结构。1.顺序表和链表的引出在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量纪录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化。(可以增加或删除元素)对于这种需求,最简单的解决方案便是将...

2019-06-07 11:01:21 684

原创 数据结构和算法-2-最坏时间复杂度和计算规则

本篇来学习一些计算时间复杂度相关的概念和规则,然后理解一些常见的时间复杂度。1.最坏时间复杂度分析算法时,存在几种可能的考虑:算法完成工作最少需要多少基本操作,即最优时间复杂度。算法完成工作最多需要多少基本操作,即最坏时间复杂度。算法完成工作平均需要多少基本操作,即平均时间复杂度。对于最优时间复杂度,其价值不大,因为它没有提供什么有用信息,其反映的只是最乐观最理想的情况,没...

2019-06-07 11:01:09 4162

原创 数据结构和算法-1-算法的引入和算法时间复杂度

最近有时间来系统学习下常见数据结构和算法的知识,所以,还是通过纪录笔记放在博客的方式来督促自己学习。算法对于很多程序员都接触不到的,何况是一个测试人员。但是面试过程中,多多少少都有算法题的面试。所以,学习算法,短期来看是为了跳槽准备,长期来看,是锻炼一个人解决问题的思路的提升的一个途径。1.算法的引入来看一个问题:如果 a+b+c = 1000, 且 a^2 + b^2 = c^2(...

2019-06-07 11:00:57 1327 1

原创 JavaWeb学习-Spring框架-2-Spring的几个概念

前面一篇,我们入门了Spring一个例子,但是还有很多东西不知道什么意思,只知道这么创建就可以,在解释这些之前,我们先来学习几个Spring的概念。1.IOC 控制反转IOC是一种思想,(Inverse Of Control)反转控制,主要的意思就是将创建对象的方式反转了。以前对象的创建是由我们开发人员自己维护,例如在Service层,需要new一个DAO层的具体实现类,也包括依赖关...

2019-06-06 23:54:31 239

原创 JavaWeb学习-Spring框架-1-Spring环境搭建

这篇开始来纪录学习Spring框架的过程,声明一下,什么Struts框架和Hibernate我就不花时间去学习了,现在市场上和公司基本上不用这两个框架了。基本上上Spring和SpringMVC /Spring boot/Spring cloud,然后Mybatis框架来代替Hibernate,所以,短期内来说,我需要学习Spring这个框架,这个是基础,然后学习Mybatis,Mybatis是D...

2019-06-06 22:46:30 4602 3

原创 JavaWeb学习-DBUtils框架-6-ThreadLocal和转账版本3

上一篇我们发现还是有问题,不同把C3P0得到Connection对象的代码出现在业务层,这个只能出现在DAO层,这篇就来解决这个问题。1.ThreadLocal先看看ThreadLocal,叫线程局部变量,这个类有set和get方法,和当前线程绑定。package com.anthony.threadlocal;public class TestThreadLocal {...

2019-06-06 13:59:25 193

原创 JavaWeb学习-DBUtils框架-5-处理转账版本二(不合适)

前面一篇转账我们发现处理逻辑不对,应该在service层来处理转账操作,DAO层不能写金额的加减,我们可以写通用的修改操作,但是不能涉及具体业务。本篇就来优化前面一篇代码,来解决这个问题1.AccountDao接口代码package com.anthony.dao;import com.anthony.entity.Account;public interface Account...

2019-06-05 23:18:28 202

原创 JavaWeb学习-DBUtils框架-4-处理转账版本一(不合适)

关于框架DBUtils,三个核心对象介绍,我们已经学习完了两个对象,还差一个DBUtils工具类,这个工具类是用来处理事务。前面我们在介绍事务的时候,我们通过转账来举例,现在我们还是用转账来学习。1.动态web项目结构2.相关代码package com.anthony.dao;public interface AccountDao { public void updat...

2019-06-05 22:02:24 157

原创 JavaWeb学习-DBUtils框架-3-ResultSetHandle接口9个方法

本篇重点来学习下DBUtils这个框架中的第二个核心对象,也就是ResultSetHandle接口,这个接口一共有11个方法实现了,有两个是抽象方法,所以我们只来学习剩下9个方法,每一个方法举例一个单元测试,描述下这个方法适合什么场景使用。ResultSetHandle接口9中方法//ArrayHandler:适合取1条纪录。把该条纪录的每列值封装到一个数组中Object[]//...

2019-06-05 19:30:12 453

原创 JavaWeb学习-DBUtils框架-2-DBUtils的CRUD操作练习

这篇来继续练习下DBUtils这个工具类和三个核心对象的使用,来一个CURD练习。1.查询前面我们查询了全部users对象,这个例子,我们通过其中一个支持多个参数的构造函数来查询待条件的用户。package com.anthony.test;import java.sql.SQLException;import java.util.List;import org.apach...

2019-06-04 20:40:52 253

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除