common-BeanUtils使用

1。在審核過程中,我們經常要把临时表中的数据拷贝到正式表中。(即hibernate中我们将临时表的model数据拷贝到正式表的model中),下面是使用BeanUtils包将studentTemp拷贝到studnet中一个例子:

student.java如下:

 

  common-BeanUtils使用_第1张图片

studentTemp.java如下:

 

common-BeanUtils使用_第2张图片

由于BeanUtils中copyProperties方法只支持简单的属性拷贝。为使ClassesTemp类型可以自动转换成Classes类型我们使用了ClassesConvert.java如下:

common-BeanUtils使用_第3张图片

BeanUtils只支持List中为String类型的拷贝,为使List<PersonTemp>类型可以自动转换成List<Person>类型我们使用了PersonConvert.java如下:

common-BeanUtils使用_第4张图片

测试Test如下:

public class BeanUtilsTest {

 public static void main(String[] args) throws Exception {
  ConvertUtils.register(new ClassesConvert(), ClassesTemp.class);
  ConvertUtils.register(new PersonConvert(), List.class);
  List<Person> persons = new ArrayList();
  List<String> phones = new ArrayList();
  phones.add("12312312-12312");
  phones.add("9999999-12312");
  for (int i = 0; i < 100; ++i) {
   Person person = new Person();
   person.setId("person" + i);
   person.setName("小李" + i);
   persons.add(person);
  }
  Classes officalC = new Classes();
  Student student = new Student();
  officalC.setId("1231");
  officalC.setName("一一班");
  student.setC(officalC);
  student.setPerson(persons);
  student.setPhones(phones);
  StudentTemp studentTemp = new StudentTemp();
  BeanUtils.copyProperties(studentTemp, student);
  System.out.println(studentTemp.getC().getId() + "-----------------");
  System.out.println(studentTemp.getC().getName() + "-----------------");
  // System.out.println((studentTemp.getPhones().get(0)) + "-----------------" + (studentTemp.getPhones().get(1))
  // + "-----------------");
  List<PersonTemp> myPersons = studentTemp.getPerson();
  for (int i = 0; i < myPersons.size(); ++i) {
   System.out.println((myPersons.get(i)).getId() + "-----------------" + (myPersons.get(i)).getName()
     + "--------------" + (myPersons.get(i)).getStudent());
  }
  System.out.println("0k--------------------------------");
 }

输出结果如下:

1231-----------------
一一班-----------------
person0-----------------小李0--------------null
person1-----------------小李1--------------null
person2-----------------小李2--------------null
person3-----------------小李3--------------null

你可能感兴趣的:(Hibernate)