List,Map,Entity,Object資料型別之間的轉換
阿新 • • 發佈:2019-02-08
前些天在做專案過程中遇到的最多的就是資料型別之間的轉換,例如將List集合轉換成實體,或者將Object轉換成實體再或者將Object轉換成Map等,最開始做這些型別轉換的實現著實讓我頭疼了一番,首先我們前臺接收的都是Json熟資料,所以在Controller中需要將上面提到的不同型別全部轉換為Json,當然了,我們使用的是底層封裝的方法,這裡我們用起來非常方便,至於Services成或者Dao層如果想要得到我們需要的資料型別,那麼就需要自己進行轉換了。
下面我就舉例具體介紹一下:
List集合轉成List<Map>集合:
查詢年級部分:
List listGrade=new ArraryList(); List<Map<Serializable, Serializable>> listGradeName=new ArraryList<Map<Serializable, Serializable>>(); listGrade = gradeBean.queryGradeAll(dataBaseName); for (Iterator iterator = listGrade.iterator(); iterator.hasNext();) { Object object = (Object) iterator.next(); Map<Serializable, Serializable> map = new HashMap<Serializable,Serializable>(); Grade grade =(Grade)object; map.put("gradeName", grade.getGradeName()); listGradeName.add(map); }
將一個list轉換成一個實體:
根據學號查詢學生資訊:
String sql1="select code,name,sex,professionalId,classesId from "+dataBaseName+".tb_student where code='"+Code+"'"; //查出來的資料是一個list<Object>型別的資料,這個資料只有一條資訊,因此Object物件的長度為1,但是他有5條屬性 List student1=studentEao.queryBySql(sql1); //定義一個實體用來儲存從Object物件中查出來的資料,該實體中包括的可用資訊有學號、性別、性別 StudentInfo studentInfo1=new StudentInfo();for(int i = 0;i<student1.size();i++){ //obj1中儲存的是查詢出的物件的屬性,因此是5條資料 Object[] obj1 = (Object[])student1.get(i); //將每一個屬性放到實體物件中 studentInfo1.setCode(obj1[0].toString()); studentInfo1.setName(obj1[1].toString()); studentInfo1.setSex(obj1[2].toString()); studentInfo1.setProfessionalId(obj1[3].toString()); studentInfo1.setClassesId(obj1[4].toString()); }
將物件包含物件型別轉換成物件包含實體型別:
根據教祕資訊查詢課程:
我們需要new一個包含需要欄位的集合,然後將物件型別轉換成map,
List fields = new ArrayList<>();
// 新增要查詢的欄位
fields.add("courseName");
fields.add("courseCode");
fields.add("id");
// 例項化Object轉Map的類
ObjectToMap o2m = new ObjectToMap(); 然後將放回結果轉換成list<map>形式: // 呼叫底層 Hql查詢方法 List result =courseEao.queryByHql(findCourseInfo, map, dataBaseName); // 返回序列化的Map形式的List listCourseInfo = o2m.convertToMap(fields, result); 取得list<map>中的值: //取出查詢到的考試科目和考試型別 String examinationName=listExaminationNameandType.get(0).get("examinationName").toString(); String examinationType=listExaminationNameandType.get(0).get("examinationType").toString();
以上就是簡單的幾種資料型別之間的轉換,在做專案的過程中我們從資料庫中查詢到的資料可能是各種不同的型別,我們通常需要轉換成自己需要的型別進行我們的顯示資料,當然了,其中還有很多不同資料型別之間的轉換,這裡簡單的列舉了經常使用的幾種。