【无标题】

目录

阶段2:从网页搭建入门Java Web

1:前端基础之HTML与CSS

2:前端基础之JavaScript与综合案例

3:Java Web基础

第一节:XML是什么

XML是什么

XML与HTML的比较:xml没有预定义的标签

XML的用途

XML文档结构

XML声明

我的第一份XML

XML标签书写规则

处理理特殊字符

XML支持五种实体引用

 CDATA标签:不做xml解析,原意输出

XML语义约束

Document Type Definition

DTD定义节点

 DTD定义节点数量

 XML引用DTD文件

创建DTD文件 

XML Schem

引入Schem:在根节点引入

DOM文档对象模型

Dom4j

利用Dom4j遍历XML

利用Dom4j更新XML

XPath路径表达式

XPath基本表达式

 XPath基本表达式案例

XPath谓语表达式

​编辑

XPath实验室

Jaxen介绍 

4:常用功能与过滤器

第1节 JSON入门

5:监听器与项目实战



阶段1:Java零基础入门

6:常用工具类(下)

第4节 Java输入输出流

File类:isDirectory()、isFile()、exists()、mkdirs()、createNewFile()

package file;

import java.io.File;
import java.io.IOException;

public class FileDemo {

	public static void main(String[] args) {
		//创建File对象
		//File file1=new File("c:\\imooc\\io\\score.txt");
		//File file1=new File("c:\\imooc","io\\score.txt");
		File file=new File("d:\\imooc");
		File file1=new File(file,"io\\score.txt");
		//判断是文件还是目录
		System.out.println("是否是目录"+file1.isDirectory());
		System.out.println("是否是文件"+file1.isFile());
		//创建文件
		File file2=new File("d:\\imooc\\io");
		if(!file2.exists()) {
			file2.mkdirs();
		}
		//创建文件
		if(!file1.exists()) {
			try {
				file1.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}

}

PATH绝对路径和相对路径:isAbsolute(),getAbsolutePath(),f.getPath

绝对路径:是从盘符开始的路径

相对路径:是从当前路径开始的路劲

package file;

import java.io.File;
import java.io.IOException;

public class FileDemo1 {

	public static void main(String[] args) {
//		File f=new File("c:\\imooc\\java\\thread\\thread.txt");
//		System.out.println(f.exists());
		File f=new File("thread.txt");
		try {
			f.createNewFile();
			//判断是否是绝对路径
			System.out.println(f.isAbsolute());
			//获取相对路径,也是file构造函数的路径
			System.out.println(f.getPath());
			//获取绝对路径
			System.out.println(f.getAbsolutePath());
			//获取文件名
			System.out.println(f.getName());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

字节流

字节输入流InputStream

【无标题】_第1张图片

 

 

字节输出流OutputStream

【无标题】_第2张图片

FileInputStream

从文件系统中的某个文件中获得输入字节

用于读取诸如图像数据之类的原始字节流

【无标题】_第3张图片

 FileInputStream:read(),单个字节转换为char(byte)

package fileInputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputDemo1 {

	public static void main(String[] args) {
		//创建一个FileInputStream对象
		try {
			FileInputStream fis=new FileInputStream("imooc.txt");
//			int n=fis.read();
			int n=0;
//			while(n!=-1){
//				System.out.print((char)n);
//				n=fis.read();
//			}
			while((n=fis.read())!=-1){
				System.out.print((char)n);
			}
			
			fis.close();
		}catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch(IOException e){
			e.printStackTrace();
		}
	}

}

FileInputStream:read(byte[] b) 字节数组转换为字符串new String(byte[] b)

package fileInputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputDemo2 {

	public static void main(String[] args) {
		// 创建一个FileInputStream对象
		try {
			FileInputStream fis = new FileInputStream("imooc.txt");
			byte[] b=new byte[100];
			fis.read(b,0,5);
			System.out.println(new String(b));
			fis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

FileOutputStream:

【无标题】_第4张图片

FileOutputStream:write(int b),不太适合做字符相关的操作,会存入意想不到的东西,适合做二进制的复制,例如图片

package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputDemo {

	public static void main(String[] args) {
		FileOutputStream fos;
		FileInputStream fis;
		try {
			fos = new FileOutputStream("imooc.txt",true);//true表示追加
			fis=new FileInputStream("imooc.txt");
			fos.write(50);//文件变为2
			fos.write('a');
			System.out.println(fis.read());
			System.out.println((char)fis.read());//读出来又是50
			fos.close();
			fis.close();

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

FileOutputStream:write(byte[] b,int i , int f)

package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputDemo1 {

	public static void main(String[] args) {
		// 文件拷贝
		try {
			FileInputStream fis=new FileInputStream("happy.gif");
			FileOutputStream fos=new FileOutputStream("happycopy.gif");
			int n=0;
			byte[] b=new byte[1024];
			while((n=fis.read(b))!=-1){
				fos.write(b,0,n);//标记写入大小,fos.write文件往往会变大
			}
			fis.close();
			fos.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}
		

	}

}

字符流

字符输入流Reader

【无标题】_第5张图片

 

字符输出流Writer 字

【无标题】_第6张图片

 字节字符转换流

InputStreamReader:read()放回字节,read(char[] c)

OutputStreamWriter:flush()

package io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class ReaderDemo {

	public static void main(String[] args) {
		try {
			FileInputStream fis=new FileInputStream("imooc.txt");
			InputStreamReader isr=new InputStreamReader(fis,"GBK");
            //可以用FileReader代替上面这两步
            
			BufferedReader br=new BufferedReader(isr);
			FileOutputStream fos=new FileOutputStream("imooc1.txt");
			OutputStreamWriter osw=new OutputStreamWriter(fos,"GBK");
			BufferedWriter bw=new BufferedWriter(osw);
			int n=0;
			char[] cbuf=new char[10];
//		    while((n=isr.read())!=-1){
//		    	   System.out.print((char)n);//char数组也是通过(char)
//		    }
//			while((n=isr.read(cbuf))!=-1){
//				String s=new String(cbuf,0,n);//string类型支持char数组的偏移量
                osr.writer(s,0,n)
//				System.out.print(s);
//			}
			while((n=br.read(cbuf))!=-1){
				//String s=new String(cbuf,0,n);
				bw.write(cbuf, 0, n);
				bw.flush();
			}
			fis.close();
			fos.close();
			isr.close();
			osw.close();
			br.close();
			bw.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		

	}

}

对象序列化

ObjectInputStream

ObjectOutputStream

步骤:

-创建一个类,继承Serializable接口

-创建对象

-将对象写入文件

-从文件读取对象信

package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class GoodsTest {

	public static void main(String[] args) {
		// 定义Goods类的对象
		Goods goods1 = new Goods("gd001", "电脑", 3000);
		try {
			FileOutputStream fos = new FileOutputStream("imooc.txt");
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			FileInputStream fis = new FileInputStream("imooc.txt");
			ObjectInputStream ois = new ObjectInputStream(fis);
			// 将Goods对象信息写入文件
			oos.writeObject(goods1);
			oos.writeBoolean(true);
			oos.flush();
			// 读对象信息
			try {
				Goods goods = (Goods) ois.readObject();
				System.out.println(goods);
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println(ois.readBoolean());

			fos.close();
			oos.close();
			fis.close();
			ois.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

【无标题】_第7张图片

 

阶段2:从网页搭建入门Java Web

1:前端基础之HTML与CSS

2:前端基础之JavaScript与综合案例

3:Java Web基础

第一节:XML是什么

XML是什么

 XML的全称是EXtensible Markup Language,可扩展标记语言

 编写XML就是编写标签,与HTML非常类似,扩展名.xml

 良好的人机可读性

hr.xml

    张三
    31
    178

XML与HTML的比较:xml没有预定义的标签

html:

 首页
xml: 

  
     三年级
     1班
 
 
     三年级
     2班
 
 

XML的用途

【无标题】_第8张图片

XML文档结构

 第一行必须是XML声明。

 有且只有一个根节点。

 XML标签的书写规则与HTML相同。

XML声明

 XML声明说明XML文档的基本信息,包括版本号与字符集,写在 XML第一行。


version 代表版本号1.0/1.1 
encoding UTF-8设置字符集,用于支持中文

我的第一份XML





李铁柱 37 3600 人事部
XX大厦-B105
林海 50 7000 财务部
XX大厦-B106
安娜 24 4600 人事部
XX大厦-B105
张晓宇 29 3000 后勤部
XX大厦-B108
赵子轩 19 1500 后勤部
XX大厦-B108
张晓璇 20 1700 后勤部
XX大厦-B108
张檬 43 8700 会计部
XX大厦-B103
李梅 33 8700 工程部
XX大厦-B104
张三 31 4000 会计部
XX大厦-B103
李四 23 3000 工程部
XX大厦-B104

XML标签书写规则

合法的标签名

 适当的注释与缩进

 合理使用属性

 特殊字符与CDATA标签

 有序的子元素 

处理理特殊字符

 标签体中,出现"<",">"特殊字符,会破坏文档结构。 处理特殊字符

 解决方案1:使用实体引用。

 解决方案2:使用CDATA标签。

无效的XML:

 1+4<3是否正确?
 3+5>8是否正确?

XML支持五种实体引用

【无标题】_第9张图片

 CDATA标签:不做xml解析,原意输出

 CDATA 指的是不应由 XML 解析器进行解析 的文本数据 CDATA标签

 从"<[!CDATA["开始,到"]]>"结束

 
 
 
 首页
 
]]>

XML语义约束

 XML文档结构正确,但可能不是有效的。

         例如,员工档案XML中绝不允许出现”植物品种” 标签。

         XML语义约束就是用于规定XML文档中允许 出现哪些元素。

 XML语义约束有两种定义方式:DTD与XML Schema。

Document Type Definition

 DTD文件的扩展名为.dtd。

 DTD(Document Type Definition,文档类型定义)是 一种简单易用的语义约束方式。

hr.dtd




...

DTD定义节点

【无标题】_第10张图片

 DTD定义节点数量

 如某个子节点需要多次重复出现,则需要在子节点后 增加相应的描述符。

【无标题】_第11张图片

 XML引用DTD文件

书写格式:

示例:

创建DTD文件 




 #标签 属性 类型 默认值





XML Schem

 XML Schema比DTD更为复杂,提供了更多功能。

 XML Schema 提供了数据类型、格式限定、数据范围等特性。

 XML Schema 是 W3C 标准。



	
		
		
			
				
					
						
							
							
								#定义一个简单的数据类型
									#通过整型去约束
										
										
									
								
							
							
							
								
									
										
										
									
								
							
						
											
					
				
			
		
		

引入Schem:在根节点引入




张三 31 4000 会计部
XX大厦-B103
李四 23 3000 工程部
XX大厦-B104

DOM文档对象模型

【无标题】_第12张图片

Dom4j

 Dom4j是一个易用的、开源的库,用于解析XML。它 应用于Java平台,具有性能优异、功能强大和极其易使 用的特点。

 Dom4j将XML视为Document对象。

 XML标签被Dom4j定义为Element对象。

利用Dom4j遍历XML



    dom4j

    dom4j

    1.6.1

package xml.dom4j;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.List;

public class HrReader {
    public static void main(String[] args) {
        File flie = new File("D:\\develop\\IdeaProjects\\hr.xml");
        //SAXReader类是xml文件的核心类,用于将xml解析后以“树”的形式保存在内存中
        SAXReader saxReader = new SAXReader();
        try {
            Document read = saxReader.read(flie);
            //获取xml文档的根节点,即hr标签
            Element rootElement = read.getRootElement();
            //elements方法用于获取指定标签的集合
            List employees = rootElement.elements("employee");
            for (Element employee : employees) {
                //element方法用于获取位于的子节点对象
                Element name = employee.element("name");
                //getText()方法用于获取标签文本
                String text = name.getText();
                System.out.println(text);
                System.out.println(employee.elementText("age"));
                System.out.println(employee.elementText("salary"));
                Element department = employee.element("department");
                System.out.println(department.element("dname").getText());
                System.out.println(department.element("address").getText());
                Attribute no = employee.attribute("no");
                System.out.println(no.getText());
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
}

利用Dom4j更新XML

package xml.dom4j;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.*;

public class HrWriter {
    public static void main(String[] args) {
        File flie = null;
        SAXReader saxReader = new SAXReader();
        try {
            flie = new File("D:\\develop\\IdeaProjects\\hr.xml");
            Document read = saxReader.read(flie);
            Element rootElement = read.getRootElement();
            Element employee = rootElement.addElement("employee");
            employee.addAttribute("no", "3311");
            Element name = employee.addElement("name");
            name.setText("陈文静");
            Element age = employee.addElement("age");
            age.setText("24");
            employee.addElement("salary").setText("10000");
            Element department = employee.addElement("department");
            department.addElement("dname").setText("心理部");
            department.addElement("address").setText("金康大厦");

            Writer writer = new OutputStreamWriter(new FileOutputStream(flie),"utf-8");
            read.write(writer);
            writer.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

XPath路径表达式

 XPath路径表达式是XML 文档中查找数据的语言。 XPath路径表达式

 掌握XPath可以极大的提高在提取数据时的开发效率。

 学习XPath本质就是掌握各种形式表达式的使用技巧。

XPath基本表达式

 最常用的基本表达式

【无标题】_第13张图片

 XPath基本表达式案例

【无标题】_第14张图片

XPath谓语表达式

【无标题】_第15张图片

XPath实验室

 利用Dom4j开发“XPath实验室”,一起见证XPath 神奇之处。

Jaxen介绍 

 Jaxen是一个Java编写的开源的XPath库。这是适应多 种不同的对象模型,包括DOM,XOM,dom4j和 JDOM。

 Dom4j底层依赖Jaxen实现XPath查询

        
            jaxen
            jaxen
            1.1.6
        
package xml.dom4j;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

import java.util.List;

public class XPathTestor {
    public void xpath(String xpathExp){
        String file = "D:\\develop\\IdeaProjects\\hr.xml";
        SAXReader saxReader = new SAXReader();
        try {
            Document document = saxReader.read(file);
            //selectNodes()方法用来查询xpath语句
            //Node类型表示包含属性和节点
            List nodes = document.selectNodes(xpathExp);
            for (Node node : nodes) {
                Element emp = (Element)node;
                System.out.println(emp.attribute("no").getText());
                System.out.println(emp.elementText("name"));
                System.out.println(emp.elementText("age"));
                System.out.println(emp.elementText("salary"));
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        XPathTestor xPathTestor = new XPathTestor();
//        xPathTestor.xpath("/hr/employee");
//        xPathTestor.xpath("//employee");
//        xPathTestor.xpath("//employee[salary<4000]");
//        xPathTestor.xpath("//employee[name='陈文静']");
//        xPathTestor.xpath("//employee[@no=3311]");
//        xPathTestor.xpath("//employee[1]");
//        xPathTestor.xpath("//employee[last()]");
//        xPathTestor.xpath("//employee[position<6()]");
        //  |合并输出
        xPathTestor.xpath("//employee[3] | //employee[8] ");
    }
}

4:常用功能与过滤器

第一节:JSON入门

JSON介绍

【无标题】_第16张图片

JSON 语法规则

  • 数值由键(key):值(value)描述,由逗号分隔

  • 大括号表示一个完整的对象,拥有多个键/值对

  • 中括号保存数组,多个对象之间使用逗号分隔

利用JSON存储员工信息表





Insert title here





JSON与字符串互相转换:JSON.parse()和JSON.stringify()

 JSON.parse() 方法将字符串转换为 JSON对象





字符串转JSON
	




 JSON.stringify() 方法将 JSON对象转换为字符串





JSON转字符串





JSON与Java交互:

 Java的JSON工具包还有FastJson、 Jackson、Gson、Json-lib...

 FastJson是阿里巴巴著名的JSON序列化与反序列工具包

 FastJson国内拥有大量使用者,拥有API简单,效率高等优点

FastJson序列化与JSON注解:JSON.toJSONString和JSON.parseObject

依赖

        
            com.alibaba
            fastjson
            1.2.66
        

实体类

package json;

import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;

public class Employee {
	private Integer empno;
	private String ename;
	private String job;
	//@JSONField(format="yyyy-MM-dd HH:mm:ss SSS")
	@JSONField(name = "hiredate" , format="yyyy-MM-dd")//对象转为json属性名变化,格式变化
	private Date hdate;
	private Float salary;
	@JSONField(serialize = false)//不进行序列化,就是不输出这个属性
	private String dname;
	public Integer getEmpno() {
		return empno;
	}
	public void setEmpno(Integer empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public Date getHdate() {
		return hdate;
	}
	public void setHdate(Date hdate) {
		this.hdate = hdate;
	}
	public Float getSalary() {
		return salary;
	}
	public void setSalary(Float salary) {
		this.salary = salary;
	}
	public String getDname() {
		return dname;
	}
	public void setDname(String dname) {
		this.dname = dname;
	}
	
	
}
package json;

import java.util.Calendar;

import com.alibaba.fastjson.JSON;

public class FastJsonSample1 {
	public static void main(String[] args) {
		Employee employee = new Employee();
		employee.setEmpno(4488);
		employee.setEname("文静");
		employee.setJob("项目经理");
		employee.setSalary(50000f);
		employee.setDname("研发部");
		Calendar c = Calendar.getInstance();
		c.set(2019, 0, 30, 0, 0, 0);
		employee.setHdate(c.getTime());
		//FastJSON提供JSON对象完成对象与JSON字符串的互相转换
		String json = JSON.toJSONString(employee);
		System.out.println(json);
		Employee emp = JSON.parseObject(json, Employee.class);
		System.out.println(emp.getEname());
	}
}

FastJSON对象数组序列化与反序列化

package json;

import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;

public class FastJsonSample2 {
	public static void main(String[] args) {
		List emplist = new ArrayList();
		for (int i = 1 ; i <= 100 ; i++) {
			Employee employee = new Employee();
			employee.setEmpno(4488 + i);
			employee.setEname("员工" + i);
			emplist.add(employee);
		}
		System.out.println(emplist);
		String json = JSON.toJSONString(emplist);
		System.out.println(json);//如果属性值为null会自动过滤掉
		List emps = JSON.parseArray(json , Employee.class);
		for(Employee e : emps) {
			System.out.println(e.getEmpno() + ":" + e.getEname());
		}
	}
}



[Employee{empno=4489, ename='员工1', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4490, ename='员工2', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4491, ename='员工3', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4492, ename='员工4', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4493, ename='员工5', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4494, ename='员工6', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4495, ename='员工7', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4496, ename='员工8', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4497, ename='员工9', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4498, ename='员工10', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4499, ename='员工11', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4500, ename='员工12', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4501, ename='员工13', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4502, ename='员工14', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4503, ename='员工15', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4504, ename='员工16', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4505, ename='员工17', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4506, ename='员工18', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4507, ename='员工19', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4508, ename='员工20', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4509, ename='员工21', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4510, ename='员工22', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4511, ename='员工23', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4512, ename='员工24', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4513, ename='员工25', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4514, ename='员工26', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4515, ename='员工27', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4516, ename='员工28', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4517, ename='员工29', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4518, ename='员工30', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4519, ename='员工31', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4520, ename='员工32', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4521, ename='员工33', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4522, ename='员工34', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4523, ename='员工35', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4524, ename='员工36', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4525, ename='员工37', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4526, ename='员工38', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4527, ename='员工39', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4528, ename='员工40', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4529, ename='员工41', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4530, ename='员工42', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4531, ename='员工43', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4532, ename='员工44', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4533, ename='员工45', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4534, ename='员工46', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4535, ename='员工47', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4536, ename='员工48', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4537, ename='员工49', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4538, ename='员工50', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4539, ename='员工51', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4540, ename='员工52', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4541, ename='员工53', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4542, ename='员工54', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4543, ename='员工55', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4544, ename='员工56', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4545, ename='员工57', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4546, ename='员工58', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4547, ename='员工59', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4548, ename='员工60', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4549, ename='员工61', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4550, ename='员工62', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4551, ename='员工63', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4552, ename='员工64', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4553, ename='员工65', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4554, ename='员工66', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4555, ename='员工67', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4556, ename='员工68', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4557, ename='员工69', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4558, ename='员工70', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4559, ename='员工71', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4560, ename='员工72', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4561, ename='员工73', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4562, ename='员工74', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4563, ename='员工75', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4564, ename='员工76', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4565, ename='员工77', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4566, ename='员工78', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4567, ename='员工79', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4568, ename='员工80', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4569, ename='员工81', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4570, ename='员工82', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4571, ename='员工83', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4572, ename='员工84', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4573, ename='员工85', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4574, ename='员工86', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4575, ename='员工87', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4576, ename='员工88', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4577, ename='员工89', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4578, ename='员工90', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4579, ename='员工91', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4580, ename='员工92', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4581, ename='员工93', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4582, ename='员工94', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4583, ename='员工95', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4584, ename='员工96', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4585, ename='员工97', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4586, ename='员工98', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4587, ename='员工99', job='null', hdate=null, salary=null, dname='null'}, Employee{empno=4588, ename='员工100', job='null', hdate=null, salary=null, dname='null'}]
[{"empno":4489,"ename":"员工1"},{"empno":4490,"ename":"员工2"},{"empno":4491,"ename":"员工3"},{"empno":4492,"ename":"员工4"},{"empno":4493,"ename":"员工5"},{"empno":4494,"ename":"员工6"},{"empno":4495,"ename":"员工7"},{"empno":4496,"ename":"员工8"},{"empno":4497,"ename":"员工9"},{"empno":4498,"ename":"员工10"},{"empno":4499,"ename":"员工11"},{"empno":4500,"ename":"员工12"},{"empno":4501,"ename":"员工13"},{"empno":4502,"ename":"员工14"},{"empno":4503,"ename":"员工15"},{"empno":4504,"ename":"员工16"},{"empno":4505,"ename":"员工17"},{"empno":4506,"ename":"员工18"},{"empno":4507,"ename":"员工19"},{"empno":4508,"ename":"员工20"},{"empno":4509,"ename":"员工21"},{"empno":4510,"ename":"员工22"},{"empno":4511,"ename":"员工23"},{"empno":4512,"ename":"员工24"},{"empno":4513,"ename":"员工25"},{"empno":4514,"ename":"员工26"},{"empno":4515,"ename":"员工27"},{"empno":4516,"ename":"员工28"},{"empno":4517,"ename":"员工29"},{"empno":4518,"ename":"员工30"},{"empno":4519,"ename":"员工31"},{"empno":4520,"ename":"员工32"},{"empno":4521,"ename":"员工33"},{"empno":4522,"ename":"员工34"},{"empno":4523,"ename":"员工35"},{"empno":4524,"ename":"员工36"},{"empno":4525,"ename":"员工37"},{"empno":4526,"ename":"员工38"},{"empno":4527,"ename":"员工39"},{"empno":4528,"ename":"员工40"},{"empno":4529,"ename":"员工41"},{"empno":4530,"ename":"员工42"},{"empno":4531,"ename":"员工43"},{"empno":4532,"ename":"员工44"},{"empno":4533,"ename":"员工45"},{"empno":4534,"ename":"员工46"},{"empno":4535,"ename":"员工47"},{"empno":4536,"ename":"员工48"},{"empno":4537,"ename":"员工49"},{"empno":4538,"ename":"员工50"},{"empno":4539,"ename":"员工51"},{"empno":4540,"ename":"员工52"},{"empno":4541,"ename":"员工53"},{"empno":4542,"ename":"员工54"},{"empno":4543,"ename":"员工55"},{"empno":4544,"ename":"员工56"},{"empno":4545,"ename":"员工57"},{"empno":4546,"ename":"员工58"},{"empno":4547,"ename":"员工59"},{"empno":4548,"ename":"员工60"},{"empno":4549,"ename":"员工61"},{"empno":4550,"ename":"员工62"},{"empno":4551,"ename":"员工63"},{"empno":4552,"ename":"员工64"},{"empno":4553,"ename":"员工65"},{"empno":4554,"ename":"员工66"},{"empno":4555,"ename":"员工67"},{"empno":4556,"ename":"员工68"},{"empno":4557,"ename":"员工69"},{"empno":4558,"ename":"员工70"},{"empno":4559,"ename":"员工71"},{"empno":4560,"ename":"员工72"},{"empno":4561,"ename":"员工73"},{"empno":4562,"ename":"员工74"},{"empno":4563,"ename":"员工75"},{"empno":4564,"ename":"员工76"},{"empno":4565,"ename":"员工77"},{"empno":4566,"ename":"员工78"},{"empno":4567,"ename":"员工79"},{"empno":4568,"ename":"员工80"},{"empno":4569,"ename":"员工81"},{"empno":4570,"ename":"员工82"},{"empno":4571,"ename":"员工83"},{"empno":4572,"ename":"员工84"},{"empno":4573,"ename":"员工85"},{"empno":4574,"ename":"员工86"},{"empno":4575,"ename":"员工87"},{"empno":4576,"ename":"员工88"},{"empno":4577,"ename":"员工89"},{"empno":4578,"ename":"员工90"},{"empno":4579,"ename":"员工91"},{"empno":4580,"ename":"员工92"},{"empno":4581,"ename":"员工93"},{"empno":4582,"ename":"员工94"},{"empno":4583,"ename":"员工95"},{"empno":4584,"ename":"员工96"},{"empno":4585,"ename":"员工97"},{"empno":4586,"ename":"员工98"},{"empno":4587,"ename":"员工99"},{"empno":4588,"ename":"员工100"}]
4489:员工1
4490:员工2
4491:员工3
4492:员工4
4493:员工5
4494:员工6
4495:员工7
4496:员工8
4497:员工9
4498:员工10
4499:员工11
4500:员工12

5:监听器与项目实战

你可能感兴趣的:(java,数据结构)