common-BeanUtils使用
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