5.4Java使用容器存储表格数据

5.4Java使用容器存储表格数据

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方法*/
   @Override
   public String toString(){
       return "id:" + id + ",name:" + name + ",salary:" + salary + ",hiredate:" + hiredate;
  }
}

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封装其本质是一样的
都是表示出一行数据然后放入表格中
*/

 

posted @ 2021-05-06 18:46  俊king  阅读(88)  评论(0编辑  收藏  举报