ID | 姓名 | 年龄 | 薪水 | 入职日期 |
---|---|---|---|---|
1001 | 张三 | 22 | 20000 | 2018.5.5 |
1002 | 李四 | 30 | 30000 | 2005.4.4 |
1003 | 王五 | 18 | 3000 | 2020.5.4 |
希望通过容器进行存储
存储方式:
行存储:
每一行使用一个Map存储
整张表格存储:
整个表格使用一个List存储
在List里面放一个Map
上述说的思想是:ORM思想--->对象关系映射
package collection.storedata;
import java.util.*;
/**
* 测试表格数据的存储---通过在List里面放入Map存储表格数据
* ORM思想:Map表示一行数据,多行数据是多个Map,将多个Map放入一个List当中
* @author Lucifer
*/
public class TestStoreData {
public static void main(String[] args) {
/*创建一个Map对象用于存储第一行的数据---通过字段对应值*/
Map<String, Object> row1 = new HashMap<>();
/*使用put方法往里面放键值对*/
row1.put("id",1001);
row1.put("name","张三");
row1.put("salary",20000);
row1.put("date","2018.5.5");
/*
这样就存储好了第一行的信息,要存储第二行的信息
在创建一个Map
*/
Map<String, Object> row2 = new HashMap<>();
row2.put("id",1002);
row2.put("name","李四");
row2.put("salary",30000);
row2.put("date","2005.4.4");
Map<String, Object> row3 = new HashMap<>();
row3.put("id",1003);
row3.put("name","王五");
row3.put("salary",3000);
row3.put("date","2020.5.4");
/*将这些Map放入List当中*/
List<Map<String, Object>> table1 = new ArrayList<>();
/*将Map放入*/
table1.add(row1);
table1.add(row2);
table1.add(row3);
//遍历整张表---增强for循环遍历
for (Map<String, Object> row : table1){
//每一行是一个Map,再去遍历Map--->通过keySet返回相应的key
Set<String> keyset = row.keySet();
//增强for循环进行遍历
for (String key : keyset){
//打印出key
System.out.print(key + ":" + row.get(key) + "\t");
}
System.out.println();
}
}
}
/*
1.一行数据可以放List里面也可以放数组里面还可以放Map里面
2.整个表可以放List里面也可以放Map里面
List、Map、Set都是容器,是容器就可以放任何东西
后面的JDBC本质上就是一张张表
把表格数据取出来存入对象
把对象内容存入表格
其本质思想和上面写的是一样的
*/
每一行使用JavaBean对象进行存储
存储方式:
每一行数据使用一个:javabean对象
整个表格使用一个Map/List
User类--->将表格字段定义为属性--->alt + insert快捷键创建
package collection.storedata;
import java.util.Date;
/**
* 定义属性,对应表格的字段内容
* @author Lucifer
*/
public class User {
/*定义表格的属性*/
private int id;
private String name;
private double salary;
private String hiredate; //时间可以Date或者String
/*空构造器*/
//一个完整的javabean,要有set、get方法和无参构造器
public User(){
}
public User(int id, String name, double salary, String hiredate) {
super();
this.id = id;
this.name = name;
this.salary = salary;
this.hiredate = hiredate;
}
/*生成javabean方法*/
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void setHiredate(String hiredate) {
this.hiredate = hiredate;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public String getHiredate() {
return hiredate;
}
/*重写toString方法*/
Test类
package collection.storedata;
import collection.storedata.*;
import java.util.*;
/**
* 测试表格数据的存储,体会ORM思想
* 每一行数据使用javabean对象进行存储,多行使用放到map或list中
* @author Lucifer
*/
public class TestStoreDataNo2 {
public static void main(String[] args) {
//每一行数据对应一个User对象
User user1 = new User(1001,"张三",20000,"2018.5.5");
User user2 = new User(1002,"李四",30000,"2005.4.4");
User user3 = new User(1003,"王五",3000,"2020.5.4");
/*
每一个对象代表一行
将这三个对象放到一个List or User里面
*/
//新建一个List容器,存放对象
List<User> list = new ArrayList<>();
//将三个对象放入容器中
list.add(user1);
list.add(user2);
list.add(user3);
//遍历对象--->增强for循环
for (User u : list){
System.out.println(list);
}
//将他们放入Map中
/*
将id作为key
Object对象作为vlaue
*/
Map<Integer, User> map = new HashMap<>();
//将对象放入容器中
map.put(1001,user1);
map.put(1002,user2);
map.put(1003,user3);
//遍历Map要先获得key的集合--->keySet方法获得key的集合
Set<Integer> keyset = map.keySet();
for (Integer key : keyset){
//打印key
System.out.println(key + "---" + map.get(key));
}
}
}
/*
无论是使用javabean封装还是使用map封装其本质是一样的
都是表示出一行数据然后放入表格中
*/