1。在審核過程中,我們經常要把临时表中的数据拷贝到正式表中。(即hibernate中我们将临时表的model数据拷贝到正式表的model中),下面是使用BeanUtils包将studentTemp拷贝到studnet中一个例子:
student.java如下:
studentTemp.java如下:
由于BeanUtils中copyProperties方法只支持简单的属性拷贝。为使ClassesTemp类型可以自动转换成Classes类型我们使用了ClassesConvert.java如下:
BeanUtils只支持List中为String类型的拷贝,为使List<PersonTemp>类型可以自动转换成List<Person>类型我们使用了PersonConvert.java如下:
测试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