我是靠谱客的博主 潇洒大门,最近开发中收集的这篇文章主要介绍java软件测试基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用记事本来编辑java文件

1. 配置java的路径

1.1选中此电脑图标/右击后,选中下拉菜单的属性/
在这里插入图片描述
1.2选中高级系统设置链接

在这里插入图片描述
1.3选中系统属性窗口中的环境变量按钮
在这里插入图片描述
1.4选中系统变量中的“CLASSPAT”路径,添加英文状态下的符号为,;

注意:若系统变量中的没有“CLASSPAT”就点击新建,添加“该变量的名称”和”值“即可
在这里插入图片描述

2.系统命令生成.class文件和访问java中的文件

cmd> javac java文件名.后缀名 //编辑java文件,生成java的.class文件

cmd> java java文件名 //显示java里面的输出内容

在这里插入图片描述

3. 解决乱码问题

文本文件名.txt"改为"java文件名.java"

记事本中的含java代码的内容的文件:首先,"另存为"另一个文件名称;接着,记事本文件的后缀名为“文件名.java”;最后修改文字编码为ANSI,点击确定即可
在这里插入图片描述

4. java基础编码

4.1 计算华氏温度

package test_softwareTEst;
	class Test2{
        public static void main(String[] args){
	//dh为摄氏温度,ds为华氏温度
            double dh = 0;
            double ds  = 0;
        System.out.println("请输入华氏度的值!");
        java.util.Scanner input = new java.util.Scanner(System.in);
        dh = input.nextDouble();
        System.out.println("转成摄氏度的值是:"+dh);
        ds =(dh-32)*(5.0/9);//此处的5为double型,录入的是5.0!!
        System.out.println("转成摄氏度的值是:"+ds);
		}
}
 

4.2 多重判断语句

package test_softwareTEst;

class Test3 {
	public static void main(String[] args) {

		int cls = 0;
		String sex = " ";//语法:文本赋值格式,,不能用null!!
		java.util.Scanner input = new java.util.Scanner(System.in);
		System.out.println("请输入班级为任意数字1,2,3:");

		cls = input.nextInt();
		System.out.println("请输入性别为女生或男生:");
		sex = input.next();

		if (cls == 1 && sex.equals("男生")) {//文本判断语法!!
			System.out.println("男生 矿泉水");
		} else if (cls == 2 && sex.equals("男生")) {
			System.out.println("男生 冰红茶");
		} else if (cls == 1 && sex.equals("女生")) {
			System.out.println("女生 农夫山泉");
		} else if (cls == 3 && sex.equals("男生")) {
			System.out.println("男生 脉动");
		} else if (cls == 3 && sex.equals("女生")) {
			System.out.println("女生 阿沙姆奶茶");
		} else if (cls == 2 && sex.equals("女生")) {
			System.out.println("女生 昆仑山泉");
		} else {
			System.out.println("无此班级!");
		}
	}
}

4.3 三角形问题

package test_softwareTEst;
class Test4 {
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		System.out.println("请输入a");
		int a=input.nextInt();
		//i为行数
		for(int i =1;i<=a;i++){
			for(int j =1;j<=i;j++){
			System.out.print("*");
			}
			System.out.println();
		}
	}
}

4.4 九九乘法表

法一:

package test_softwareTEst;
class Test4 {
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		System.out.println("请输入a");
		int a=input.nextInt();
		//i为行数
		for(int i =1;i<=a;i++){
			for(int j =1;j<=i;j++){
			System.out.print("*");
			}
			System.out.println();
		}
	}
}

法二:

package test_softwareTEst;
class Test5 {
	public static void main(String[] args) {
		int sum =0;
		//i为行数
		for(int i =1;i<=9;i++){
			for(int j =1;j<=i;j++){//j=2为打印第2行的数
			System.out.print(i+"X"+j+"="+i*j+"t");
			}
			System.out.println();
		}
	}
}

4.5 函数的调用

创建一个表格

法一:

package test_softwareTEst;
public class Test8 {
	static int tiji(int a,int b,int c) {
		int area = a*b*c;
		return area;
	}
	
	public static void main(String[] args) {
		System.err.print("长方形的面积是"+tiji(3,2,5));
	}
}

法二:

public class Test8 {
	static int tiji(int a,int b,int c) {
		return a*b*c;
	}
	
	public static void main(String[] args) {
		System.err.print("长方形的面积是"+tiji(3,2,5));
	}
}	if (cls == 1 && sex.equals("男生")) {//文本判断语法!!
		System.out.println("男生 矿泉水");
	} else if (cls == 2 && sex.equals("男生")) {
		System.out.println("男生 冰红茶");
	} else if (cls == 1 && sex.equals("女生")) {
		System.out.println("女生 农夫山泉");
	} else if (cls == 3 && sex.equals("男生")) {
		System.out.println("男生 脉动");
	} else if (cls == 3 && sex.equals("女生")) {
		System.out.println("女生 阿沙姆奶茶");
	} else if (cls == 2 && sex.equals("女生")) {
		System.out.println("女生 昆仑山泉");
	} else {
		System.out.println("无此班级!");
	}

4.7 面向对象

测试中类中,实例化名.方法体的名称;实例化名.名词的属性名称(此处已经赋值了)

5. 白盒测试流程图

if条件覆盖1

5.1 java文件编码

package test_softwareTEst;
class Test11 {
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);//第1行
		System.out.println("请输入一个Score:");//第2行
		int Score = input.nextInt();//第3行
		if (Score >=80) { //第4行
			System.out.println("优秀");//第5行
		} else if (Score>=60) {//第6行
			System.out.println("及格");//第7行
		} else {
			System.out.println("不及格");//第8行
		}
	}
}

5.2程序流程图

在这里插入图片描述

5.3.控制流程图

在这里插入图片描述
注意;控制流程图中有三个分支,就有是那种背景色,不包括圆内的颜色(三色:小正方形,大正方形和最外层的背景色)

if条件覆盖测试用例

在这里插入图片描述

循环覆盖测试用例

在这里插入图片描述

for循环覆盖1

1.java文件编码

package test_softwareTEst;
class Test10 {
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		System.out.println("请输入a");
		int a=input.nextInt();
		//i为行数
		for(int m =1;m<=100;m++){
			System.out.print("服务"+m);//m为服务的次数
		}
	}
}

2.程序流程图

在这里插入图片描述

4.for循环测试用例

在这里插入图片描述

for循环覆盖2

1.java代码

package test_softwareTEst;
class 多符号的输出 {
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		System.out.println("请输入m");
		int m=input.nextInt();
		//i为行数
		for(int i =1;i<=m;i++){
			for(int j =1;j<=10;j++){//不参与流程图中
				System.out.print("*");//不参与流程图中
			}//不参与流程图中
			System.out.println();//不参与流程图中
		}
	}
}

2.程序和控制流程图

在这里插入图片描述
注意:此处的循环语句的流程控制图,只画一个循环的线就可以了。内部的另一个for循环跟上一个for循环无关,故部分语句不参与!!

for循环覆盖3

范围前的数-范围后的数

取值:前数,前数+1;取两个数的中间值;后数,后数+1

1.java代码

package test_softwareTEst;
class Test12 {
	static void print() {
		java.util.Scanner input = new java.util.Scanner(System.in);
		System.out.println("请输入m");
		int m=input.nextInt();//第0个
		System.out.println("请输入n"); 
		int n=input.nextInt();//第1个
		//i为行数
		for(int i =1;i<=m;i++){//第2个
			for(int j =1;j<=n;j++){//第3个
				System.out.print("*");//第4个
			}//
			System.out.println();//第6个
		}
	}
	public static void main(String[] args) {
		Test12 t12 = new Test12();
				t12.print();
	}
}

运行结果:

在这里插入图片描述

2.程序和控制流程图

在这里插入图片描述

6. 黑盒测试流程图

黑盒测试“用例”

备注:去掉满足条件的头部和尾部的数字
有效等价类:满足条件的取值范围
无效等价类:取不满足条件的范围(超出的范围)

1. 等价类!

测试用例类似于区间无法,无效等价类为不满足的条件,有效等价类为满足的条件(变量所取值的范围)

等价类题目

有效等价类要求:
微信号: 2~10位,只能以后下划线,美元$ 字母开头
密码: 6~16位 ,必须只能字母开头

在这里插入图片描述

在这里插入图片描述

备注:有效等价类的条件必须一一拆开,为了便于后面的测试!!

等价类的测试用例:

测试用用例表(测每个变量的前后数超出的边界范围,每个变量最少测1次)

在这里插入图片描述

2.边界值表

题目

已知成绩score:0~750,写出边界值表

边界值表

在这里插入图片描述

测试用例!

在这里插入图片描述
分析:边界值表取头数的前面的数,头数本身,头数+1;取总数值/2; 尾数的前面的数,尾数本身,尾数+1

6x+1=6+7(以上的七个分析值决定)+1=14

3. 决策表

文本定义

题目1

要求:3 如果总分高于450,各科均分高于75或优秀毕业生,直接录取。否则待定

规划

在这里插入图片描述

1.真值表判断

在这里插入图片描述

(中间的后一步需要合并!!)

在这里插入图片描述

2.最终合并(-符号为取任何值都可以满足条件)

在这里插入图片描述
备注:合并需要根据录取和待定进行判读,若它们列与列的录取都为打勾状态就可以进行合并了。合并的条件:打勾的类型一样;前两项数字对应一样;后三项对应数字有一个相同的也是可以合并的。这里使用到的值为0和1

2. 题目2!

在这里插入图片描述

规划

在这里插入图片描述
备注1:备注:在条件和情况中标号0和1,需要打勾的值。在下表中先找到满足的2个条件的,进行后面的情况判断。最后在判断第3个条件的值

1.真值表

在这里插入图片描述
备注2:在条件和情况中标号0和1,需要打勾的值。在下表中先找到满足的2个条件的,进行后面的情况判断。最后在判断第3个条件的值

2.最终合并

在这里插入图片描述

3.测试用例!

在这里插入图片描述

符号替文字!

3.题目:

成绩>60分,通过;成绩50~60分,平时成绩大于80,通过,否则不给通过;成绩<60分,不通过

1.规划

在这里插入图片描述

2.分析

在这里插入图片描述

3.合并同类型

在这里插入图片描述

4.题目

题目:成绩>60分,通过;成绩50~60分,表现好且通过;成绩<60分,不通过

1.规划

在这里插入图片描述

2.分析

在这里插入图片描述

3.合并同类型

在这里插入图片描述

5.题目

1.规划

在这里插入图片描述

2.分析

在这里插入图片描述

3.合并同类型

在这里插入图片描述

7.DateUntil工具类的使用

7.1DateUtil.java

package Test2;

public class DateUtil {
  public String createDate(int year,int month,int day) {
	  String str="";
	  //
	  if(year <1950 || year >2100) {
		  return "年份只能在1950~2100之间";
	  }
	   //
  if(month <1 || month >12) {
	  return "月份只能在1~12之间";
  }
  
  //
  if(day <1 || day >31) {
	  return "天数只能在1~31之间";
  }
  
  //
  if( (month ==4 || month ==6 || month ==9 
		  ||month ==11)  && day >30) {
	  return "小月不能超过30天";
  }
  
  if(month ==2) {
	  if(year%4==0 && year%100!=0) {
		  if(day>29) {
			  return "闰年2月不能超过29天";
		  }else {
			  return "平闰年2月不能超过28天";
		  }
	  }
  }
return year +"年" +month +"月" +day +"日";
  }
}

7.2 Test1.java //单条测试

package Test2;

public class Test1{
	public static void main(String [] args){
		DateUtil du = new DateUtil();
//		assertEquals("2000年5月12日",du.createDate(2000, 5, 12));// 验证
		System.out.println(du.createDate(2000, 5, 12));
	}
}

7.3 测试表(共31个测试用例)

3.1等价测试表!

3.2边界测试表!

备注:正常——期望一样,去掉重复的行

3.3其他测试表

在这里插入图片描述

7.4DateUtil_TestCase.java //多条测试

package Test2;
import Test2.DateUtil;
import junit.framework.TestCase;
public class DateUtil_TestCase extends TestCase {
	DateUtil du = new DateUtil();
	/*********************1.等价类列表测试(7条)start*********************************/
//	备注:n个方法的验证方式相同,使用junit工具类,进行测试后,运行结果出现绿色,则表明这n个方法的测试中所验证的值是
	public void test001() {
		//字符型的文字跟等价类表中的期望结果的值一样!!
		assertEquals("2000年5月12日",du.createDate(2000, 5, 12));// 验证
	}
    public void test002() {
        assertEquals("年份只能在1950~2100之间",du.createDate(1949, 2, 2));
    }
    public void test003() {
        assertEquals("年份只能在1950~2100之间",du.createDate(2101, 11, 30));
    }

    public void test004() {
        assertEquals("月份只能在1~12之间",du.createDate(1990,-5,31));
    }
        public void test005() {
        assertEquals("月份只能在1~12之间",du.createDate(1999,0,5));
    }
    public void test006() {
        assertEquals("天数只能在1~31之间",du.createDate(1998,6,-5));
    }
    public void test007() {
        assertEquals("天数只能在1~31之间",du.createDate(1992,8,0));
    }
    /*********************1.等价类列表测试(7条)end*********************************/
	
    
    
    
    
    
/*********************2.边界值表测试(19条)start*********************************/
	public void test008() {
		//字符型的文字跟等价类表中的期望结果的值一样!!
		assertEquals("年份只能在1950~2100之间",du.createDate(1949,6,16));// 验证
	}
    public void test009() {
	assertEquals("1950年6月16日",du.createDate(1950,6,16));
    }
    public void test010() {
        assertEquals("1951年6月16日",du.createDate(1951,6,16));
    }

    public void test011() {
        assertEquals("1999年6月16日",du.createDate(1999,6,16));
    }
        public void test012() {
        assertEquals("2000年6月16日",du.createDate(2000,6,16));
    }
    public void test013() {
        assertEquals("2100年6月16日",du.createDate(2100,6,16));
    }
    public void test014() {
        assertEquals("年份只能在1950~2100之间",du.createDate(2101,6,16));
    }
    public void test015() {
        //字符型的文字跟等价类表中的期望结果的值一样!!
        assertEquals("月份只能在1~12之间",du.createDate(1972,0,16));// 验证
    }

    public void test016() {
        assertEquals("1972年1月16日",du.createDate(1972,1,16));
    }
    public void test017() {
        assertEquals("平闰年2月不能超过28天",du.createDate(1972,2,16));
    }

    public void test018() {
        assertEquals("1972年11月16日",du.createDate(1972,11,16));
    }
    public void test019() {
        assertEquals("1972年12月16日",du.createDate(1972,12,16));
    }
    public void test020() {
        assertEquals("月份只能在1~12之间",du.createDate(1972,13,0));
    }
    public void test021() {
        assertEquals("1972年6月1日",du.createDate(1972,6,1));
    }
    public void test022() {
        assertEquals("1950年6月2日",du.createDate(1950,6,2));
    }
    public void test023() {
        assertEquals("1972年6月30日",du.createDate(1972,6,30));
    }

    public void test024() {
        assertEquals("1972年6月30日",du.createDate(1972,6,30));
    }
    public void test025() {
        assertEquals("小月不能超过30天",du.createDate(1972,6,31));
    }
    public void test026() {
        assertEquals("天数只能在1~31之间",du.createDate(1972,6,32));
    }
    
    /*********************2.等价类列表测试(19条)end*********************************/
    
    
    /*********************3.边界值表测试(5条)start*********************************/

    public void test027() {
        assertEquals("年份只能在1950~2100之间",du.createDate(1949,4,31));
    }

    public void test028() {
        assertEquals("年份只能在1950~2100之间",du.createDate(1949,4,32));
    }
    public void test029() {
        assertEquals("年份只能在1950~2100之间",du.createDate(1949,9,33));
    }
    public void test030() {
        assertEquals("2000年2月29日",du.createDate(2000,2,29));
    }
    public void test031() {
        assertEquals("2000年2月28日",du.createDate(2000,2,28));
    }
    /*********************3.等价类列表测试(5条)end*********************************/
    public static void main(String[] args) {
        junit.textui.TestRunner.run(DateUtil_TestCase.class);// 此处需要安装。导入JUnit包
    }
}

8.数据库

在cmd命令中使用数据库

mysql -u root -p //只需要密码登录数据库

show databases; //显示所有的数据库

create database 数据库名; //创建数据库

use 数据库名; //使用数据库

select database(); //查询数据库

注意:1个汉字占2个字符;建表以分号结束

desc 表名 ; // 查看表的结构

create table 表名(

​ //学号为字符串类型

​ //末尾的最后一个变量的定义,不需要写逗号间隔

​ sno varchar(4) , //学号

​ sname varchar(8),

​ sex varchar(4),

​ age int(4)

);

select * from 表名; //查表

insert into 表名(列名1,列名1……) values(列名1的数据类型,列名2的数据类型……);

先停掉数据库,在删掉数据库

update 表名 set 列名1=‘列名值1’,列名n=‘列名值n’ where 主键列名=‘主键的值’ //修改行中的n列

delete from 表名 where 学号=‘值’;//删除一条数据记录

在这里插入图片描述

在这里插入图片描述

9.tomcat设置

9.1tomcat的安裝路徑

最好采用系统帮默认安装的方式,就是安装tomcat路径不需要修改!!
在这里插入图片描述

9.2tomcat的配置路徑

电脑tomcat的安裝路徑属性/高级设置/系统变量/classpath/tomcat安装的bin目录
在这里插入图片描述

9.3测试配置

在cmd中查看是否已经配置好路径了 或在电脑的命令提示符cmd中进行测试,8为tomcat的版本号!!
在这里插入图片描述

9.4检测tomcat8是否安装成功

法一:在cmd中查看是否已经配置好路径了 或在电脑的命令提示符cmd中进行测试,8为tomcat的版本号!!
若使用命令行输入tomcat8后,系统会显示以下的配置信息,则已经在classpath那里配置成功了
在这里插入图片描述

法二:在浏览器中测试:http://localhost:8080/

1.运行内部的tomcat文件(双击tomcat.exe文件)

在这里插入图片描述

2.注意:如果在浏览器中无法加载tomcat主界面,那么说明tomcat的可执行文件exe还没有运行!!

例子:http://localhost:8080/lanykey/login.jsp
注意: 每次编译完在tomcat8的目录下的webapps里面自己所创建的文件后,在点击运行,tomcat8中的bin目录下的的exe文件,否则修改后的页面不正常显示
协议://ip地址:端口号/用户自己在tomcat8的webapps文件夹下所创建的目录/同左目录下的文件(文件内是由内容的)

1.物理主机的IP地址

http://192.168.51.173:8080/lanykey/222.txt

2.以下两个ip地址是通用的

http://127.0.0.1:8080/lanykey/222.txt

http://localhost:8080/lanykey/222.txt

注意:222.txt文件必须是在tomcat安装路径下的webapps路径内的文件,并且文件内部必须由内容!!!
在这里插入图片描述

10. 安装JUnit工具

下载和安装JUnit工具基本步骤

1.从官网下载

2.解压JUnit包到本地的磁盘上

3.在java企业版中导入此包

3.1在java企业版中,选中项目后,在选项卡中点击属性

在这里插入图片描述

3.2选中3个地方: java Buid Path/libraries/AddExternal JARs…/打开即可导入“mysql-connector-java-5.1.49.jar”

在这里插入图片描述
在这里插入图片描述

3.3选中项目中的3个地方,勾选使用mysql…jar包在这里插入图片描述

在这里插入图片描述

3.4选择自己下载好的JUnit工具

“Test_finally”/“D:mysql安装包mysql-connector-java-5.1.49mysql-connector-java-5.1.49.jar”/“com.mysql.jdbc”/“Driver.class”
在这里插入图片描述

3.5查看JUnit的驱动名字

“Test_finally”/“D:mysql安装包mysql-connector-java-5.1.49mysql-connector-java-5.1.49.jar”/“com.mysql.jdbc”/双击"Driver.class"/找到驱动器的名字为“com.mysql.jdbc.Driver”
在这里插入图片描述

11.out.println和System.out.println的区别

out.println:在浏览器中输出(任意访问的浏览器中,内部不显示java中信息)

在这里插入图片描述
System.out.println:在dos命令行中输出(tomcat8的命令行中显示)
在这里插入图片描述

12.配置tomcat8访问网页的路

12.1 在tomcat8下的路径webapps目录下新建4个文件夹(lanykeyWEB-INF)

C:Program FilesApache Software FoundationTomcat 8.0webappslanykeyWEB-INF

在tomcat8下的路径webapps目录下新建2个文件夹分别为classes和lib文件夹
在这里插入图片描述
12.2 Test1文件夹内的class文件,从java软件中复制出整个项目的文件到桌面上。在内部找到bin文件夹,复制bin内部的Test1文件夹含几个.classs文件到以下的目录,如下图
路径为:C:Program FilesApache Software FoundationTomcat 8.0webappslanykeyWEB-INFclassesTest1
在这里插入图片描述
12.3 复制本地mysql驱动包

C:Program FilesApache Software FoundationTomcat 8.0webappslanykeyWEB-INFlib
在这里插入图片描述

1.登录类

注意:jsp,txt等等其他的文件都放在tomcat内的webapps文件夹内!!
在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>
	<head>登录界面</head>
	<meta charset="UTF-8" />
	<body>	
		<form action="welcome.jsp">
			用户名:<input type="text" name="username"></input></br>
			密码:<input type="text" name="password"></input></br>
			<input type="button" value="登录" />
			<input type="reset" value="重置" />
			<input type="submit"  />                                                                                                                                                                                                                                                                                       
			<%
				String err= request.getParameter("error");

			if(err!=null){
				out.print("<span style='color:red;' >用户名或密码错误</span>");
 					 
			}
		%>
	</form>
		 
</body>
</html>

2.欢迎界面类

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="Test1.UserInfoDao"%>
<html>
	<head></head>
	<meta charset="UTF-8" />
	<body>	
		<%
			String str1 = request.getParameter("username");
			String str2 = request.getParameter("password");

			UserInfoDao dao= new UserInfoDao();

			if(!dao.validateUserInfo(str1 ,str2 )){
				response.sendRedirect("login.jsp?error=no");
			}
		%>
		<h1>欢迎!热烈欢迎!</h1>
		</body>
</html>

3.cmd命令提示符

进入mysql命令中
mysql -u root -p
在这里插入图片描述

//新建表
create table UserInfo(

  account        varchar(16),

  password       varchar(16),

  username       varchar(16)

);

 show databases;//显示已有的全部的数据库名
 
 create database lanykey;
 
 use lanykey;//只有创建好了数据库,才可以使用数据库名,才看可以有其他的语句可以插入,修改等等!!
 
select * from UserInfo;//

insert into UserInfo values('lanykey','123456','adff');//

insert into UserInfo values('koki','1111','a');//

在这里插入图片描述
在这里插入图片描述

4.访问网页

http://localhost:8080/
在这里插入图片描述

http://localhost:8080/lanykey/login.jsp
在这里插入图片描述
http://localhost:8080/lanykey/login.jsp

输入正确的信息后,先点击登录,后在点击提交
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

注意:localhost为本地账户,127.0.0.1为每个用户都可以访问,192.168.16.214为自己主机的ip地址,只能是这个地址可以访问

查看自己电脑的ip地址,在电脑的cmd命令窗口中输入ipconfig/all,即可查看ipv4的地址

在这里插入图片描述
在这里插入图片描述

5.tomcat目录下的.class类文件

在这里插入图片描述

5.1 Student.java

package Test1;

public class Student {
	public String sno;
	public String sname;
	public String sex;
	public int age;
//	@Override
//	public String toString() {
//		return "Student [sno=" + sno + ", sname=" + sname + ", sex=" + sex + ", age=" + age + "]";
//	}
	
	
}

5.2 StudentDao_test1 .java

package Test1;

import java.util.List;

public class StudentDao_test1 {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		StudentDao sd = new StudentDao();
		Student s = new Student();
        s.sno="s012";
        s.sname="ggg";
        s.sex="女";
        s.age=15;
        StudentDao.addStudent(s);//把s的值加入到addStudent方法体中
            sd.deleteStudent("s012"); 

        s.sno="s008";
        s.sname="QWQ";
        s.sex="女";
        s.age=111;;//把s的值加入到addStudent方法体中
        StudentDao.addStudent(s);//把s的值加入到addStudent方法体中

        List<Student> list = sd.getAll();
        for(Student c:list){//foreach

            System.out.print(c.sno+"t");
            System.out.print(c.sname+"t");
            System.out.print(c.sex+"t");
            System.out.println(c.age+"t");

        }
	
	}
}

5.3 StudentDao.java

package Test1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.naming.ldap.Rdn;

public class StudentDao {
	static void addStudent(Student student){
		//1.获取连接
		try {
			//1.加载驱动类
			Class.forName("com.mysql.jdbc.Driver");
			//2.设置连接信息
			String username="root";	//数据库用户名
			String password="123456";//数据库密码
			String url ="jdbc:mysql://127.0.0.1:3306/lanykey";
			
			//3.设备连接
			Connection conn = DriverManager.getConnection(url, username, password);
			System.out.println(conn);
			//3.1设置指令
			String sql = "insert into student "
					+ "values('"+student.sno+"',"
							+ " ' "+student.sname+"',"
									+ " '"+student.sex+"',"
									+student.age+")";
			
			//3.2通过连接创建语句执行者
			Statement st = conn.createStatement();
			
			//3.3通过语句执行者,操作数据库
			st.execute(sql);
			st.close();
			conn.close();
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	void deleteStudent(String ac){
		//1.获取连接
				try {
					//1.加载驱动类
					Class.forName("com.mysql.jdbc.Driver");
					//2.设置连接信息
					String username="root";	//数据库用户名
					String password="123456";//数据库密码
					String url ="jdbc:mysql://127.0.0.1:3306/lanykey";
					
					//3.设备连接
					Connection conn = DriverManager.getConnection(url, username, password);
					System.out.println(conn);
					//3.1设置指令
					String sql = "delete from student where sno='"+ac+"' ";
					
//					 insert into student values('s030','ax','w',0);
//					 insert into student values('s010','bx','m',0);
//					 insert into student values('s020','cx','w',0);
					
					//3.2通过连接预处理语句执行者
					Statement st =  conn.prepareStatement(sql);//!!
					
					//3.3操作数据库
					st.execute(sql);
					st.close();
					conn.close();
					
				} catch (ClassNotFoundException e) {
					e.printStackTrace();
				} catch (SQLException e) {
					e.printStackTrace();
				}
	}
//	
	static void updateStudent(Student student){
		//1.获取连接
		try {
			//1.加载驱动类
			Class.forName("com.mysql.jdbc.Driver");
			//2.设置连接信息
			String username="root";	//数据库用户名
			String password="123456";//数据库密码
			String url ="jdbc:mysql://127.0.0.1:3306/lanykey";
			
			//3.设备连接
			Connection conn = DriverManager.getConnection(url, username, password);
			System.out.println(conn);
			//3.1设置指令
			String sql ="update student set sname='"+student.sname
					+"',sex='"+student.sex
					+"',age="+student.age
					+" where sno='"+student.sno+"'";
			
			System.out.println(sql);//用来检查语句是否有错!!
			//3.2通过连接创建语句执行者
			Statement st = conn.prepareStatement(sql);
//			if(st.execute(sql)){
//				System.out.println("插入成功!");
//			}else{
//				System.out.println("插入失敗!");
//			}
			//3.3通过语句执行者,操作数据库
			st.execute(sql);
			st.close();
			conn.close();
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public List<Student> getAll(){
		List<Student> list = new ArrayList<Student>();//ArrayList是List的子类!!
		//1.获取连接
				try {
					//1.加载驱动类
					Class.forName("com.mysql.jdbc.Driver");
					//2.设置连接信息
					String username="root";	//数据库用户名
					String password="123456";//数据库密码
					String url ="jdbc:mysql://127.0.0.1:3306/lanykey";
					
					//3.设备连接
					Connection conn = DriverManager.getConnection(url, username, password);
					System.out.println(conn);
					//3.1设置指令
					String sql = "select * from student";
					Statement st = conn.createStatement();
					//3.3操作数据库
					ResultSet rs = st.executeQuery(sql);//sql包
					while(rs.next()){
						Student stu = new Student();
						stu.sno = rs.getString("sno");
						stu.sname = rs.getString("sname");
						stu.sex = rs.getString("sex");
						stu.age = rs.getInt("age");
						list.add(stu);//!!
					}
					
					st.execute(sql);
					st.close();
					conn.close();
					
				} catch (ClassNotFoundException e) {
					e.printStackTrace();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				
		return list;
		
	}

}

5.4 Test1.java

package Test1;
//jdb的基本框架
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Test1 {
	public static void main(String[] args) {
		//获取连接
		//内存中的工具class
		try {
			//1.加载驱动类
			Class.forName("com.mysql.jdbc.Driver");
			//2.设置连接信息
			String username="root";	//数据库用户名
			String password="123456";//数据库密码
			//String url ="jdbc:mysql://127.0.0.1:3306/lanykey";
			
			String url = "jdbc:mysql://127.0.0.1:3306/lanykey?useUnicode=true&characterEncoding=GBK";
			//String url = "jdbc:mysql://127.0.0.1:3306/lanykey?useUnicode=true&characterEncoding=gb2312","root","123456";
			//3.设备连接
			Connection conn = DriverManager.getConnection(url, username, password);
			System.out.println(conn);
			//3.1设置指令
			//String sql = "insert into student values('s001','QAQ','女',15)";
			//String sql = "update student set sname='QBQ',sex='男',age = 15 where sno='s001' ";
			//String sql = "delete from student where sno='s001' ";
			String sql = "select * from student";
			
			//3.2通过连接创建语句执行者
			Statement st = conn.createStatement();
			

			//3.3通过语句执行者,操作数据库
			//st.execute(sql);
			//st.execute(sql);
			ResultSet rs = st.executeQuery(sql);
			while(rs.next()){
				String sno = rs.getString("sno");
				String sname = rs.getString("sname");
				String sex = rs.getString("sex");
				int age = rs.getInt("age");
				System.out.print(sno+"t"+sname+"t"+sex+"t"+age+"n");
			}
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

5.5 UserInfo.java

package Test1;

public class UserInfo {
	public String account;
	public String password;
	public String username;
	
}

5.6 UserInfoDao .java

package Test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class UserInfoDao {
	public boolean validateUserInfo(String ac, String pwd){
		  boolean flag=false;
		//1.获取连接
		try {
			//1.加载驱动类
			Class.forName("com.mysql.jdbc.Driver");
			//2.设置连接信息
			String username="root";	//数据库用户名
			String password="123456";//数据库密码
			String url ="jdbc:mysql://127.0.0.1:3306/lanykey";
			
			//3.设备连接
			Connection conn = DriverManager.getConnection(url, username, password);
			System.out.println(conn);
			//3.1设置指令
			String sql = "select * from UserInfo "
					+ "where account='"+ac+"'"
					+ " and password='"+pwd+"'";
			
			//3.2通过连接创建语句执行者
			Statement st = conn.createStatement();
			ResultSet rs = st.executeQuery(sql);//sql包!!
			flag = rs.next();
			//3.3通过语句执行者,操作数据库
			st.execute(sql);
			st.close();
			conn.close();
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return flag;
	}
}

5.7 UserInfoDaoTest.java

package Test1;

public class UserInfoDaoTest {
	public static void main(String[] args) {
		UserInfoDao userInfoDao = new UserInfoDao();
		System.err.println(userInfoDao.validateUserInfo("lanykey", "123456"));
	}
}

最后

以上就是潇洒大门为你收集整理的java软件测试基础的全部内容,希望文章能够帮你解决java软件测试基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部