2012年6月17日 星期日

[JAVA_Apache]有幫程式設計師設計BeanUtils工具套件

BeanUtils是一種非常實用的JavaBean,在apache底下的一個組件,我稍微介紹一下它的實用性,等等用程式碼來代表就清楚了,首先需要先把 commons-beanutils-1.8.3.jar 和 commons-logging-1.1.1.jar 導入,再將bean屬性建置好

public class User {

 private String username;

 private String password;

 private String attribute;

 private Long userId;

 private Profile profile;

 //以下get,set
}

public class Profile {

 private String email;

 private Date birthDate;

 private Address[] address;

 private Map phone;
 
 private HashMap telephone;

 //以下get,set
}

public class Address {

 private String country;

 private String city;

 private String addr;

 private String postcode;

 public Address(String country, String city, String addr, String postcode) {
  this.country = country;
  this.city = city;
  this.addr = addr;
  this.postcode = postcode;
 }

//以下get,set
}


import java.lang.reflect.InvocationTargetException;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;

import BeanUtils.Address;
import BeanUtils.Profile;
import BeanUtils.User;

public class BeanUtilExample {

 //建立假資料
 public User prepareDate() throws IllegalAccessException, InvocationTargetException {
  Profile profile = new Profile();

  profile.setEmail("pp@gmail.com");
  profile.setBirthDate(new GregorianCalendar(2012, 06, 16).getTime());

  Map phone = new HashMap();
  phone.put("home", "(03)XXXXXXX");
  phone.put("office", "(02)1234-5678");
  phone.put("mobile", "09XX-XXX-XXX");
  profile.setPhone(phone);
  
  Address addr1 = new Address("台灣省", "桃園縣中壢市", "XX路", "100001");
  Address addr2 = new Address("台灣省", "台北市中山區", "XXX路", "100002");
  Address[] address = { addr1, addr2 };
  profile.setAddress(address);

  User user = new User();
  user.setUserId(new Long(123456789));
  user.setUsername("puma");
  user.setPassword("987654321");
  user.setAttribute("男");
  user.setProfile(profile);
  
  return user;
 }

 public static void main(String[] args) {

  BeanUtilExample example = new BeanUtilExample();
  
  try {
   User user = example.prepareDate();
   //取值方式
   System.out.println(BeanUtils.getProperty(user, "userId"));
   System.out.println(PropertyUtils.getProperty(user, "userId"));
   System.out.println(BeanUtils.getProperty(user, "username"));
   System.out.println(BeanUtils.getProperty(user, "password"));
   System.out.println(BeanUtils.getProperty(user, "attribute"));
   System.out.println(BeanUtils.getProperty(user, "profile"));
   System.out.println(BeanUtils.getProperty(user, "profile.email"));
   System.out.println(BeanUtils.getProperty(user, "profile.birthDate"));
   System.out.println(BeanUtils.getProperty(user,  "profile.phone" ));
   System.out.println(BeanUtils.getProperty(user,  "profile.phone(mobile)" ));
   System.out.println(BeanUtils.getProperty(user,  "profile.phone(office)" ));
   System.out.println(BeanUtils.getProperty(user,  "profile.phone(home)" ));
   System.out.println(BeanUtils.getProperty(user,  "profile.address[0].country" ));
   System.out.println(BeanUtils.getProperty(user,  "profile.address[0].city" ));
   System.out.println(BeanUtils.getProperty(user,  "profile.address[0].postcode" ));
         
   System.out.println("--------------------------------------------------------------------");
       
   User user2 =  new  User();
   BeanUtils.copyProperties(user2, user);  //將user這物件轉至user2
   System.out.println(BeanUtils.getProperty(user2,  "userId" ));  //輸出user類的userId的值
   System.out.println(PropertyUtils.getProperty(user2,  "userId" ));
   System.out.println(BeanUtils.getProperty(user2,  "username" ));
   System.out.println(BeanUtils.getProperty(user2,  "password" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.email" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.birthDate" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.phone" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.phone(mobile)" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.phone(office)" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.phone(home)" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.address[0].country" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.address[0].city" ));
   System.out.println(BeanUtils.getProperty(user2,  "profile.address[0].postcode" ));
         
   System.out.println("--------------------------------------------------------------------");
         
   Profile profile = new Profile();
   HashMap map = new HashMap();

   map.put( "1", "13880808080" );
   map.put( "2", "13550505050" );
   BeanUtils.setProperty( profile, "telephone", map );
   System.out.println(BeanUtils.getProperty( profile, "telephone(1)" ));
         
  } catch (IllegalAccessException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (InvocationTargetException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (NoSuchMethodException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}




結果

123456789
123456789
puma
987654321
BeanUtils.Profile@66388993
pp@gmail.com
Mon Jul 16 00:00:00 CST 2012
{office=(02)1234-5678, home=(03)XXXXXXX, mobile=09XX-XXX-XXX}
09XX-XXX-XXX
(02)1234-5678
(03)XXXXXXX
台灣省
桃園縣中壢市
100001
--------------------------------------------------------------------
123456789
123456789
puma
987654321
BeanUtils.Profile@66388993
pp@gmail.com
Mon Jul 16 00:00:00 CST 2012
{office=(02)1234-5678, home=(03)XXXXXXX, mobile=09XX-XXX-XXX}
09XX-XXX-XXX
(02)1234-5678
(03)XXXXXXX
台灣省
桃園縣中壢市
100001
--------------------------------------------------------------------
15136125313
















其它文章

沒有留言:

張貼留言

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...